You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(2) |
Oct
(43) |
Nov
(4) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(78) |
Feb
(97) |
Mar
(29) |
Apr
(2) |
May
(22) |
Jun
(38) |
Jul
(11) |
Aug
(27) |
Sep
(40) |
Oct
(2) |
Nov
(17) |
Dec
(8) |
2002 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(480) |
May
(456) |
Jun
(12) |
Jul
|
Aug
(1) |
Sep
|
Oct
(18) |
Nov
(3) |
Dec
(6) |
2003 |
Jan
|
Feb
(18) |
Mar
(1) |
Apr
|
May
(6) |
Jun
(147) |
Jul
(7) |
Aug
(3) |
Sep
(235) |
Oct
(10) |
Nov
(2) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Dave A. <ai...@us...> - 2003-06-10 02:08:48
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/i386 In directory sc8-pr-cvs1:/tmp/cvs-serv23180/Documentation/i386 Modified Files: boot.txt Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: boot.txt =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/i386/boot.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- boot.txt 9 Apr 2002 16:55:41 -0000 1.2 +++ boot.txt 10 Jun 2003 01:45:45 -0000 1.3 @@ -2,7 +2,7 @@ ---------------------------- H. Peter Anvin <hp...@zy...> - Last update 2000-10-29 + Last update 2002-01-01 On the i386 platform, the Linux kernel uses a rather complicated boot convention. This has evolved partially due to historical aspects, as @@ -25,12 +25,15 @@ Protocol 2.01: (Kernel 1.3.76) Added a heap overrun warning. Protocol 2.02: (Kernel 2.4.0-test3-pre3) New command line protocol. - Lower the conventional memory ceiling. No overwrite + Lower the conventional memory ceiling. No overwrite of the traditional setup area, thus making booting safe for systems which use the EBDA from SMM or 32-bit BIOS entry points. zImage deprecated but still supported. +Protocol 2.03: (Kernel 2.4.18-pre1) Explicitly makes the highest possible + initrd address available to the bootloader. + **** MEMORY LAYOUT @@ -45,7 +48,7 @@ 098000 +------------------------+ | Kernel setup | The kernel real-mode code. 090200 +------------------------+ - | Kernel boot sector | The kernel legacy boot sector. + | Kernel boot sector | The kernel legacy boot sector. 090000 +------------------------+ | Protected-mode kernel | The bulk of the kernel image. 010000 +------------------------+ @@ -62,16 +65,16 @@ When using bzImage, the protected-mode kernel was relocated to 0x100000 ("high memory"), and the kernel real-mode block (boot sector, setup, and stack/heap) was made relocatable to any address between -0x10000 and end of low memory. Unfortunately, in protocols 2.00 and +0x10000 and end of low memory. Unfortunately, in protocols 2.00 and 2.01 the command line is still required to live in the 0x9XXXX memory range, and that memory range is still overwritten by the early kernel. -The 2.02 protocol fixes that. +The 2.02 protocol resolves that problem. It is desirable to keep the "memory ceiling" -- the highest point in low memory touched by the boot loader -- as low as possible, since some newer BIOSes have begun to allocate some rather large amounts of memory, called the Extended BIOS Data Area, near the top of low -memory. The boot loader should use the "INT 12h" BIOS call to verify +memory. The boot loader should use the "INT 12h" BIOS call to verify how much low memory is available. Unfortunately, if INT 12h reports that the amount of memory is too @@ -112,7 +115,8 @@ 0202/4 2.00+ header Magic signature "HdrS" 0206/2 2.00+ version Boot protocol version supported 0208/4 2.00+ realmode_swtch Boot loader hook (see below) -020C/4 2.00+ start_sys Points to kernel version string +020C/2 2.00+ start_sys The load-low segment (0x1000) (obsolete) +020E/2 2.00+ kernel_version Pointer to kernel version string 0210/1 2.00+ type_of_loader Boot loader identifier 0211/1 2.00+ loadflags Boot protocol option flags 0212/2 2.00+ setup_move_size Move to high memory size (used with hooks) @@ -123,6 +127,7 @@ 0224/2 2.01+ heap_end_ptr Free memory after setup end 0226/2 N/A pad1 Unused 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line +022C/4 2.03+ initrd_addr_max Highest legal initrd address For backwards compatibility, if the setup_sects field contains 0, the real value is 4. @@ -140,6 +145,15 @@ setting fields in the header, you must make sure only to set fields supported by the protocol version in use. +The "kernel_version" field, if set to a nonzero value, contains a +pointer to a null-terminated human-readable kernel version number +string, less 0x200. This can be used to display the kernel version to +the user. This value should be less than (0x200*setup_sects). For +example, if this value is set to 0x1c00, the kernel version number +string can be found at offset 0x1e00 in the kernel file. This is a +valid value if and only if the "setup_sects" field contains the value +14 or higher. + Most boot loaders will simply load the kernel at its target address directly. Such boot loaders do not need to worry about filling in most of the fields in the header. The following fields should be @@ -160,6 +174,9 @@ 3 SYSLINUX 4 EtherBoot + Please contact <hp...@zy...> if you need a bootloader ID + value assigned. + loadflags, heap_end_ptr: If the protocol version is 2.01 or higher, enter the offset limit of the setup heap into heap_end_ptr and set the @@ -180,9 +197,9 @@ The initrd should typically be located as high in memory as possible, as it may otherwise get overwritten by the early - kernel initialization sequence. However, it must never be - located above address 0x3C000000 if you want all kernels to - read it. + kernel initialization sequence. However, it must never be + located above the address specified in the initrd_addr_max + field. The initrd should be at least 4K page aligned. cmd_line_ptr: If the protocol version is 2.02 or higher, this is a 32-bit @@ -192,7 +209,15 @@ command line, in which case you can point this to an empty string (or better yet, to the string "auto".) If this field is left at zero, the kernel will assume that your boot loader - does not support the 2.02 protocol. + does not support the 2.02+ protocol. + + ramdisk_max: + The maximum address that may be occupied by the initrd + contents. For boot protocols 2.02 or earlier, this field is + not present, and the maximum address is 0x37FFFFFF. (This + address is defined as the address of the highest safe byte, so + if your ramdisk is exactly 131072 bytes long and this field is + 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) **** THE KERNEL COMMAND LINE @@ -254,14 +279,14 @@ if ( protocol >= 0x0202 ) { cmd_line_ptr = base_ptr + 0x9000; } else { - cmd_line_magic = 0xA33F; + cmd_line_magic = 0xA33F; cmd_line_offset = 0x9000; setup_move_size = 0x9100; } } else { /* Very old kernel */ - cmd_line_magic = 0xA33F; + cmd_line_magic = 0xA33F; cmd_line_offset = 0x9000; /* A very old kernel MUST have its real-mode code @@ -411,4 +436,3 @@ After completing your hook, you should jump to the address that was in this field before your boot loader overwrote it. - |
From: Dave A. <ai...@us...> - 2003-06-10 02:08:39
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/usb In directory sc8-pr-cvs1:/tmp/cvs-serv23180/Documentation/usb Modified Files: ov511.txt usb-serial.txt Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: ov511.txt =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/usb/ov511.txt,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- ov511.txt 14 Jan 2001 20:06:50 -0000 1.1.1.1 +++ ov511.txt 10 Jun 2003 01:45:47 -0000 1.2 @@ -8,11 +8,11 @@ INTRODUCTION: This is a driver for the OV511, a USB-only chip used in many "webcam" devices. -Any camera using the OV511/OV511+ and the OV7610/20/20AE CCD should work. It +Any camera using the OV511/OV511+ and the OV6620/OV7610/20/20AE should work. +Video capture devices that use the Philips SAA7111A decoder also work. It supports streaming and capture of color or monochrome video via the Video4Linux -API. Most V4L apps are compatible with it, but a few video-conferencing programs -do not work yet. The following resolutions are supported: 640x480, 448x336, -384x288, 352x288, and 320x240. +API. Most V4L apps are compatible with it. Most resolutions with a width and +height that are a multiple of 8 are supported. If you need more information, please visit the OV511 homepage at the above URL. @@ -27,22 +27,25 @@ HOW TO USE IT: +Note: These are simplified instructions. For complete instructions see: + http://alpha.dyndns.org/ov511/install.html + You must have first compiled USB support, support for your specific USB host controller (UHCI or OHCI), and Video4Linux support for your kernel (I recommend -making them modules.) +making them modules.) Make sure "Enforce bandwidth allocation" is NOT enabled. -Next, (as root) from your appropriate modules directory (lib/modules/2.3.XX): +Next, (as root): - insmod usb/usbcore.o - insmod usb/usb-uhci.o <OR> insmod usb/ohci-hcd.o - insmod misc/videodev.o - insmod usb/ov511.o + modprobe usbcore + modprobe usb-uhci <OR> modprobe usb-ohci + modprobe videodev + modprobe ov511 If it is not already there (it usually is), create the video device: - mknod /dev/video c 81 0 + mknod /dev/video0 c 81 0 -Sometimes /dev/video is a symlink to /dev/video0 +Optionally, symlink /dev/video to /dev/video0 You will have to set permissions on this device to allow you to read/write from it: @@ -55,39 +58,40 @@ [Using vidcat:] - vidcat -s 640x480 > test.jpg + vidcat -s 640x480 -p c > test.jpg xview test.jpg [Using xawtv:] -You must make some modifications to the source and compile it before you use it. -(Note: this may not be applicable to versions other than 3.06) - -In src/Xawtv.ad, change xawtv.tv.width to 640 and xawtv.tv.height to 480. Next, -in src/grab-v4l.c, change SYNC_TIMEOUT from 1 to 2. Then, from the main xawtv -directory: +From the main xawtv directory: make clean ./configure make make install -Now you should be able to run xawtv. Right click for the options dialog. If -you get a scrambled image it is likely that you made a mistake in Xawtv.ad. -Try setting the size to 320x240 if all else fails. +Now you should be able to run xawtv. Right click for the options dialog. MODULE PARAMETERS: You can set these with: insmod ov511 NAME=VALUE There is currently no way to set these on a per-camera basis. - NAME: autoadjust - TYPE: integer (boolean) + NAME: autobright + TYPE: integer (Boolean) DEFAULT: 1 - DESC: The camera normally adjusts exposure, gain, and hue automatically. This - can be set to 0 to disable this automatic adjustment. Note that there is - currently no way to set these parameters manually once autoadjust is - disabled. + DESC: Brightness is normally under automatic control and can't be set + manually by the video app. Set to 0 for manual control. + + NAME: autogain + TYPE: integer (Boolean) + DEFAULT: 1 + DESC: Auto Gain Control enable. This feature is not yet implemented. + + NAME: autoexp + TYPE: integer (Boolean) + DEFAULT: 1 + DESC: Auto Exposure Control enable. This feature is not yet implemented. NAME: debug TYPE: integer (0-6) @@ -102,49 +106,23 @@ 5=highly repetitive mesgs NAME: fix_rgb_offset - TYPE: integer (boolean) + TYPE: integer (Boolean) DEFAULT: 0 DESC: Some people have reported that the blue component of the image is one or so lines higher than the red component. This is only apparent in images with white objects on black backgrounds at 640x480. Setting this - to 1 will realign the color planes correctly. NOTE: This is still - experimental and very buggy. You will likely need a fast (500 MHz) CPU. + to 1 will realign the color planes correctly. NOTE: You will likely + need a fast (500 MHz) CPU. NAME: snapshot - TYPE: integer (boolean) + TYPE: integer (Boolean) DEFAULT: 0 - DESC: Set to 1 to enable snapshot mode. read() will block until the snapshot - button is pressed. Note that this does not yet work with most apps, - including xawtv and vidcat. NOTE: See the section "TODO" for more info. - - NAME: sensor - TYPE: integer ([0, 1, 3]) - DEFAULT: [varies] - DESC: If you know that your camera sensor is not detected correctly, set this - parameter. This is a global option for all attached OV511 cameras. You - will probably never need to set this, but if you do, valid values are: - 0 for OV7620 - 1 for OV7620AE - 3 for OV7610 - - NAME: i2c_detect_tries - TYPE: integer (don't set it insanely high!) - DEFAULT: 5 - DESC: This is the number of times the driver will try to sync and detect the - internal i2c bus (which connects the OV511 and sensor). If you are - getting intermittent detection failures ("Failed to read sensor ID...") - you should increase this by a modest amount. If setting it to 20 or so - doesn't fix things, look elsewhere for the cause of the problem. - - NAME: aperture - TYPE: integer (0 - 15) - DEFAULT: [varies by sensor] - DESC: For legal values, see the OV7610/7620 specs under register Common F. - This setting affects the upper nybble of that reg (bits 4-7). This is - for if you want to play with the camera's pixel saturation. + DESC: Set to 1 to enable snapshot mode. read()/VIDIOCSYNC will block until + the snapshot button is pressed. Note: enabling this mode disables + /proc/video/ov511/<minor#>/button - NAME: force_rgb - TYPE: integer (boolean) + NAME: force_rgb (Deprecated; may be removed in the future) + TYPE: integer (Boolean) DEFAULT: 0 DESC: Force image to be read in RGB instead of BGR. This option allow programs that expect RGB data (e.g. gqcam) to work with this driver. If @@ -169,60 +147,179 @@ both OV511 and OV511+ cameras, trial-and-error may be necessary for finding the optimum setting. - NAME: retry_sync - TYPE: boolean + NAME: compress + TYPE: integer (Boolean) + DEFAULT: 0 + DESC: Set this to 1 to turn on the camera's compression engine. This can + potentially increase the frame rate at the expense of quality, if you + have a fast CPU. You must load the proper compression module for your + camera before starting your application (ov511_decomp or ov518_decomp). + + NAME: testpat + TYPE: integer (Boolean) DEFAULT: 0 - DESC: Prevent apps from timing out if frame is not done in time. This is - useful if you are having problems with Xawtv getting "stuck" on a frame - when your system is under heavy load. + DESC: This configures the camera's sensor to transmit a colored test-pattern + instead of an image. This does not work correctly yet. - NAME: sensor_gbr - TYPE: boolean + NAME: sensor_gbr (*** TEMPORARILY DISABLED ***) + TYPE: integer (Boolean) DEFAULT: 0 DESC: This makes the sensor output GBR422 instead of YUV420. This saves the driver the trouble of converting YUV to RGB, but it currently does not work very well (the colors are not quite right) + NAME: dumppix + TYPE: integer (0-2) + DEFAULT: 0 + DESC: Dumps raw pixel data and skips post-processing and format conversion. + It is for debugging purposes only. Options are: + 0: Disable (default) + 1: Dump raw data from camera, excluding headers and trailers + 2: Dumps data exactly as received from camera + + NAME: led + TYPE: integer (0-2) + DEFAULT: 1 (Always on) + DESC: Controls whether the LED (the little light) on the front of the camera + is always off (0), always on (1), or only on when driver is open (2). + This is only supported with the OV511+ chipset, and even then only on + some cameras (ones that actually have the LED wired to the control pin, + and not just hardwired to be on all the time). + + NAME: dump_bridge + TYPE: integer (Boolean) + DEFAULT: 0 + DESC: Dumps the bridge (OV511[+] or OV518[+]) register values to the system + log. Only useful for serious debugging/development purposes. + + NAME: dump_sensor + TYPE: integer (Boolean) + DEFAULT: 0 + DESC: Dumps the sensor register values to the system log. Only useful for + serious debugging/development purposes. + + NAME: printph + TYPE: integer (Boolean) + DEFAULT: 0 + DESC: Setting this to 1 will dump the first 12 bytes of each isoc frame. This + is only useful if you are trying to debug problems with the isoc data + stream (i.e.: camera initializes, but vidcat hangs until Ctrl-C). Be + warned that this dumps a large number of messages to your kernel log. + + NAME: phy, phuv, pvy, pvuv, qhy, qhuv, qvy, qvuv + TYPE: integer (0-63 for phy and phuv, 0-255 for rest) + DEFAULT: OV511 default values + DESC: These are registers 70h - 77h of the OV511, which control the + prediction ranges and quantization thresholds of the compressor, for + the Y and UV channels in the horizontal and vertical directions. See + the OV511 or OV511+ data sheet for more detailed descriptions. These + normally do not need to be changed. + + NAME: lightfreq + TYPE: integer (0, 50, or 60) + DEFAULT: 0 (use sensor default) + DESC: Sets the sensor to match your lighting frequency. This can reduce the + appearance of "banding", i.e. horizontal lines or waves of light and + dark that are often caused by artificial lighting. Valid values are: + 0 - Use default (depends on sensor, most likely 60 Hz) + 50 - For European and Asian 50 Hz power + 60 - For American 60 Hz power + + NAME: bandingfilter + TYPE: integer (Boolean) + DEFAULT: 0 (off) + DESC: Enables the sensor´s banding filter exposure algorithm. This reduces + or stabilizes the "banding" caused by some artificial light sources + (especially fluorescent). You might have to set lightfreq correctly for + this to work right. As an added bonus, this sometimes makes it + possible to capture your monitor´s output. + + NAME: fastset + TYPE: integer (Boolean) + DEFAULT: 0 (off) + DESC: Allows picture settings (brightness, contrast, color, and hue) to take + effect immediately, even in the middle of a frame. This reduces the + time to change settings, but can ruin frames during the change. Only + affects OmniVision sensors. + + NAME: force_palette + TYPE: integer (Boolean) + DEFAULT: 0 (off) + DESC: Forces the palette (color format) to a specific value. If an + application requests a different palette, it will be rejected, thereby + forcing it to try others until it succeeds. This is useful for forcing + greyscale mode with a color camera, for example. Supported modes are: + 0 (Allows all the following formats) + 1 VIDEO_PALETTE_GREY (Linear greyscale) + 3 VIDEO_PALETTE_RGB565 (565 16 bit RGB) + 4 VIDEO_PALETTE_RGB24 (24bit RGB) + 7 VIDEO_PALETTE_YUV422 (YUV422 capture) + 8 VIDEO_PALETTE_YUYV (YUV422 capture; same as 7) + 10 VIDEO_PALETTE_YUV420 (YUV 4:2:0 Planar) + 13 VIDEO_PALETTE_YUV422P (YUV 4:2:2 Planar) + 15 VIDEO_PALETTE_YUV420P (YUV 4:2:0 Planar, same as 10) + + NAME: tuner + TYPE: integer + DEFAULT: -1 (autodetect) + DESC: This sets the exact type of the tuner module in a device. This is set + automatically based on the custom ID of the OV511 device. In cases + where this fails, you can override this auto-detection. Please see + linux/drivers/media/video/tuner.h for a complete list. + + NAME: backlight + TYPE: integer (Boolean) + DEFAULT: 0 (off) + DESC: Setting this flag changes the exposure algorithm for OmniVision sensors + such that objects in the camera's view (i.e. your head) can be clearly + seen when they are illuminated from behind. It reduces or eliminates + the sensor's auto-exposure function, so it should only be used when + needed. Additionally, it is only supported with the OV6620 and OV7620. + + NAME: unit_video + TYPE: Up to 16 comma-separated integers + DEFAULT: 0,0,0... (automatically assign the next available minor(s)) + DESC: You can specify up to 16 minor numbers to be assigned to ov511 devices. + For example, "unit_video=1,3" will make the driver use /dev/video1 and + /dev/video3 for the first two devices it detects. Additional devices + will be assigned automatically starting at the first available device + node (/dev/video0 in this case). Note that you cannot specify 0 as a + minor number. This feature requires kernel version 2.4.5 or higher. + + NAME: remove_zeros + TYPE: integer (Boolean) + DEFAULT: 0 (do not skip any incoming data) + DESC: Setting this to 1 will remove zero-padding from incoming data. This + will compensate for the blocks of corruption that can appear when the + camera cannot keep up with the speed of the USB bus (eg. at low frame + resolutions). This feature is always enabled when compression is on. + WORKING FEATURES: - o Color streaming/capture at 640x480, 448x336, 384x288, 352x288, and 320x240 - o RGB24, RGB565, YUV420, YUV422, YUYV, and YUV422P color - o Monochrome + o Color streaming/capture at most widths and heights that are multiples of 8. + o RGB24, RGB565, YUV420/YUV420P, YUV422/YUYV, and YUV422P color + o Monochrome (use force_palette=1 to enable) o Setting/getting of saturation, contrast, brightness, and hue (only some of them work the OV7620 and OV7620AE) o /proc status reporting + o SAA7111A video capture support at 320x240 and 640x480 + o Compression support EXPERIMENTAL FEATURES: - o fix_rgb_offset: Sometimes works, but other times causes errors with xawtv and - corrupted frames. If you have a very fast CPU, you can try it. - o Snapshot mode (only works with some read() based apps; see below for more) - o OV6620 sensor support - o GBR422 parsing - o 160x120 - -TODO: - o Fix the noise / grainy image problem. - o Get compression working. It would be a nice addition as it improves - frame rate quite a bit. OmniVision wouldn't tell me how the algorithm works, - so we can't really work on that yet. Please kindly inform OmniVision that you - would like them to release their specifications to the Linux community. - o YUV422 - o Fix fixFrameRGBoffset(). It is not stable yet with streaming video. - o V4L2 support (Probably not until it goes into the kernel) - o Get rid of the memory management functions (put them in videodev.c??) - o Setting of contrast and brightness not working with 7620/7620AE - o Driver/camera state save/restore for when USB supports suspend/resume - o Unstable on SMP systems - o OV7620/OV6620 experience frame corruption with moving objects - o OV6620 is too dark - o 176x144 support - o Driver sometimes hangs upon close() with OHCI - o The image should always be written properly to the mmap'ed buffer as long as - the requested image size is at least the minimum size. This will likely - require a rewrite of all the parsing code. + o OV6630 sensor support + o Banding filter + o SMP compatibility + +TO-DO: + o V4L2 support (This will be done after the next kernel patch release) + o Setting of hue not working with OV7620 + o Setting of contrast and hue not working with OV7620AE + o OV8600 sensor support (Not used in anything yet) + o OV518/OV518+ support (all that's needed is the decompressor) + o cams >= 3 not working HOW TO CONTACT ME: -You can email me at mwm@i.am . Please prefix the subject line +You can email me at mmc...@bi... . Please prefix the subject line with "OV511: " so that I am certain to notice your message. CREDITS: @@ -232,3 +329,4 @@ and the USB stack. Thanks to Bret Wallach for getting camera reg IO, ISOC, and image capture working. Thanks to Orion Sky Lawlor, Kevin Moore, and Claudio Matsuoka for their work as well. + Index: usb-serial.txt =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/usb/usb-serial.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- usb-serial.txt 9 Apr 2002 16:55:47 -0000 1.2 +++ usb-serial.txt 10 Jun 2003 01:45:47 -0000 1.3 @@ -95,6 +95,66 @@ Kroah-Hartman at gr...@kr... +Compaq iPAQ driver + + This driver can be used to connect to Compaq iPAQ PDAs running + Windows CE 3.0 using a USB autosync cable. It has been tested only on + the Compaq H3135. It should work with the H3600 and later models too. + It may work with other CE based handhelds as well. + + The driver presents a serial interface (usually on /dev/ttyUSB0) over + which one may run ppp and establish a TCP/IP link to the iPAQ. Once this + is done, you can transfer files, backup, download email etc. The most + significant advantage of using USB is speed - you can get 73 to 113 + kbytes/sec for download/upload to the iPAQ. + + The driver works intermittently with the usb-uhci driver but quite + reliably with the uhci driver. Make sure you have the right driver + loaded - usb-uhci is often the default. + + You must setup hotplug to invoke pppd as soon as the iPAQ is connected. + A ppp script like the one below may be used: + + #!/bin/bash + + MYIP=linux.box.ip + REMOTEIP=ipaq.ip + MYDNS=my.dns.server + killall -9 pppd + /usr/sbin/pppd /dev/ttyUSB0 \ + connect "/usr/sbin/chat -v TIMEOUT 60 CLIENT 'CLIENTSERVER\c'" \ + nocrtscts local debug passive $MYIP:$REMOTEIP ms-dns $MYDNS noauth \ + proxyarp + + You must also download and install asyncd from http://synce.sourceforge.net + This is required to emulate keep-alive packets which are exchanged by + ActiveSync and the iPAQ. + + On connecting the cable, you should see the usual "Device Connected", + "User Authenticated" messages flash by on your iPAQ. Once connected, + you can use Win CE programs like ftpView, Pocket Outlook from the iPAQ + and other synce utilities from the Linux side. Remember to enable IP + forwarding. + + To use Pocket IE, follow the instructions given at + http://www.tekguru.co.uk/EM500/usbtonet.htm to achieve the same thing + on Win98. Omit the proxy server part; Linux is quite capable of forwarding + packets unlike Win98. Another modification is required at least for the + iPAQ - disable autosync by going to the Start/Settings/Connections menu + and unchecking the "Automatically synchronize ..." box. Go to + Start/Programs/Connections, connect the cable and select "usbdial" (or + whatever you named your new USB connection). You should finally wind + up with a "Connected to usbdial" window with status shown as connected. + Now start up PIE and browse away. + + If it doesn't work for some reason, load both the usbserial and ipaq module + with the module parameter "debug" set to 1 and examine the system log. + You can also try soft-resetting your iPAQ before attempting a connection. + + For any questions or problems with the driver, please contact Ganesh + Varadarajan <ga...@ve...> + + Keyspan PDA Serial Adapter Single port DB-9 serial adapter, pushed as a PDA adapter for iMacs (mostly @@ -301,6 +361,32 @@ For any questions or problems with this driver, please contact Greg Kroah-Hartman at gr...@kr... + +KL5KUSB105 chipset / PalmConnect USB single-port adapter + +Current status: + The driver was put together by looking at the usb bus transactions + done by Palm's driver under Windows, so a lot of functionality is + still missing. Notably, serial ioctls are sometimes faked or not yet + implemented. Support for finding out about DSR and CTS line status is + however implemented (though not nicely), so your favorite autopilot(1) + and pilot-manager -daemon calls will work. Baud rates up to 115200 + are supported, but handshaking (software or hardware) is not, which is + why it is wise to cut down on the rate used is wise for large + transfers until this is settled. + +Options supported: + If this driver is compiled as a module you can pass the following + options to it: + debug - extra verbose debugging info + (default: 0; nonzero enables) + use_lowlatency - use low_latency flag to speed up tty layer + when reading from from the device. + (default: 0; nonzero enables) + + See http://www.uuhaus.de/linux/palmconnect.html for up-to-date + information on this driver. + Generic Serial driver |
From: Dave A. <ai...@us...> - 2003-06-10 02:08:38
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/sparc64/kernel Modified Files: central.c check_asm.sh ioctl32.c iommu_common.c iommu_common.h pci_common.c pci_psycho.c power.c process.c rtrap.S smp.c sys_sparc.c time.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: central.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/central.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- central.c 10 Apr 2002 15:21:23 -0000 1.2 +++ central.c 10 Jun 2003 01:46:16 -0000 1.3 @@ -67,6 +67,7 @@ if (rngc == nranges) /* oops */ prom_printf("adjust_regs: Could not find range with matching bus type...\n"); regp[regc].which_io = rangep[rngc].ot_parent_space; + regp[regc].phys_addr -= rangep[rngc].ot_child_base; regp[regc].phys_addr += rangep[rngc].ot_parent_base; } } Index: check_asm.sh =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/check_asm.sh,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- check_asm.sh 10 Apr 2002 15:21:23 -0000 1.2 +++ check_asm.sh 10 Jun 2003 01:46:16 -0000 1.3 @@ -1,12 +1,12 @@ #!/bin/sh case $1 in -printf) - sed -n -e '/struct[ ]*'$2'_struct[ ]*{/,/};/p' < $3 | sed '/struct[ ]*'$2'_struct[ ]*{/d;/:[0-9]*[ ]*;/d;/^[ ]*$/d;/};/d;s/^[ ]*//;s/volatile[ ]*//;s/\(unsigned\|signed\|struct\)[ ]*//;s/\(\[\|__attribute__\).*;[ ]*$//;s/(\*//;s/)(.*)//;s/;[ ]*$//;s/^[^ ]*[ ]*//;s/,/\ + sed -n -e '/^#/d;/struct[ ]*'$2'_struct[ ]*{/,/};/p' < $3 | sed '/struct[ ]*'$2'_struct[ ]*{/d;/:[0-9]*[ ]*;/d;/^[ ]*$/d;/};/d;s/^[ ]*//;s/volatile[ ]*//;s/\(unsigned\|signed\|struct\)[ ]*//;s/\(\[\|__attribute__\).*;[ ]*$//;s/(\*//;s/)(.*)//;s/;[ ]*$//;s/^[^ ]*[ ]*//;s/,/\ /g' | sed 's/^[ *]*//;s/[ ]*$//;s/^.*$/printf ("#define AOFF_'$2'_\0 0x%08x\\n", check_asm_data[i++]); printf("#define ASIZ_'$2'_\0 0x%08x\\n", check_asm_data[i++]);/' >> $4 echo "printf (\"#define ASIZ_$2\\t0x%08x\\n\", check_asm_data[i++]);" >> $4 ;; -data) - sed -n -e '/struct[ ]*'$2'_struct[ ]*{/,/};/p' < $3 | sed '/struct[ ]*'$2'_struct[ ]*{/d;/:[0-9]*[ ]*;/d;/^[ ]*$/d;/};/d;s/^[ ]*//;s/volatile[ ]*//;s/\(unsigned\|signed\|struct\)[ ]*//;s/\(\[\|__attribute__\).*;[ ]*$//;s/(\*//;s/)(.*)//;s/;[ ]*$//;s/^[^ ]*[ ]*//;s/,/\ + sed -n -e '/^#/d;/struct[ ]*'$2'_struct[ ]*{/,/};/p' < $3 | sed '/struct[ ]*'$2'_struct[ ]*{/d;/:[0-9]*[ ]*;/d;/^[ ]*$/d;/};/d;s/^[ ]*//;s/volatile[ ]*//;s/\(unsigned\|signed\|struct\)[ ]*//;s/\(\[\|__attribute__\).*;[ ]*$//;s/(\*//;s/)(.*)//;s/;[ ]*$//;s/^[^ ]*[ ]*//;s/,/\ /g' | sed 's/^[ *]*//;s/[ ]*$//;s/^.*$/ ((char *)\&((struct '$2'_struct *)0)->\0) - ((char *)((struct '$2'_struct *)0)), sizeof(((struct '$2'_struct *)0)->\0),/' >> $4 echo " sizeof(struct $2_struct)," >> $4 ;; Index: ioctl32.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/ioctl32.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ioctl32.c 10 Jun 2003 01:13:18 -0000 1.3 +++ ioctl32.c 10 Jun 2003 01:46:16 -0000 1.4 @@ -472,6 +472,7 @@ return -ENODEV; strcpy(ifr32.ifr_name, dev->name); + dev_put(dev); err = copy_to_user((struct ifreq32 *)arg, &ifr32, sizeof(struct ifreq32)); return (err ? -EFAULT : 0); @@ -1580,12 +1581,17 @@ } err |= __get_user(sbp32, &sg_io32->sbp); - sg_io64.sbp = kmalloc(64, GFP_KERNEL); + sg_io64.sbp = kmalloc(sg_io64.mx_sb_len, GFP_KERNEL); if (!sg_io64.sbp) { err = -ENOMEM; goto out; } - memset(sg_io64.sbp, 0, 64); + if (copy_from_user(sg_io64.sbp, + (void *) A(sbp32), + sg_io64.mx_sb_len)) { + err = -EFAULT; + goto out; + } err |= __get_user(dxferp32, &sg_io32->dxferp); if (sg_io64.iovec_count) { @@ -1633,7 +1639,7 @@ err |= __put_user(sg_io64.resid, &sg_io32->resid); err |= __put_user(sg_io64.duration, &sg_io32->duration); err |= __put_user(sg_io64.info, &sg_io32->info); - err |= copy_to_user((void *)A(sbp32), sg_io64.sbp, 64); + err |= copy_to_user((void *)A(sbp32), sg_io64.sbp, sg_io64.mx_sb_len); if (sg_io64.dxferp) { if (sg_io64.iovec_count) err |= copy_back_sg_iovec(&sg_io64, dxferp32); Index: iommu_common.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/iommu_common.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- iommu_common.c 10 Apr 2002 15:21:23 -0000 1.2 +++ iommu_common.c 10 Jun 2003 01:46:17 -0000 1.3 @@ -66,7 +66,9 @@ daddr = dma_sg->dma_address; sglen = sg->length; - sgaddr = (unsigned long) sg->address; + sgaddr = (unsigned long) (sg->address ? + sg->address : + page_address(sg->page) + sg->offset); while (dlen > 0) { unsigned long paddr; @@ -116,7 +118,9 @@ sg++; if (--nents <= 0) break; - sgaddr = (unsigned long) sg->address; + sgaddr = (unsigned long) (sg->address ? + sg->address : + page_address(sg->page) + sg->offset); sglen = sg->length; } if (dlen < 0) { @@ -197,14 +201,21 @@ unsigned long prev; u32 dent_addr, dent_len; - prev = (unsigned long) sg->address; + prev = (unsigned long) (sg->address ? + sg->address : + page_address(sg->page) + sg->offset); prev += (unsigned long) (dent_len = sg->length); - dent_addr = (u32) ((unsigned long)sg->address & (IO_PAGE_SIZE - 1UL)); + dent_addr = (u32) ((unsigned long)(sg->address ? + sg->address : + page_address(sg->page) + sg->offset) + & (IO_PAGE_SIZE - 1UL)); while (--nents) { unsigned long addr; sg++; - addr = (unsigned long) sg->address; + addr = (unsigned long) (sg->address ? + sg->address : + page_address(sg->page) + sg->offset); if (! VCONTIG(prev, addr)) { dma_sg->dma_address = dent_addr; dma_sg->dma_length = dent_len; Index: iommu_common.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/iommu_common.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- iommu_common.h 10 Apr 2002 15:21:23 -0000 1.2 +++ iommu_common.h 10 Jun 2003 01:46:17 -0000 1.3 @@ -6,8 +6,9 @@ #include <linux/kernel.h> #include <linux/types.h> +#include <linux/sched.h> +#include <linux/mm.h> -#include <asm/page.h> #include <asm/iommu.h> #include <asm/scatterlist.h> Index: pci_common.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/pci_common.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- pci_common.c 10 Apr 2002 15:21:23 -0000 1.2 +++ pci_common.c 10 Jun 2003 01:46:17 -0000 1.3 @@ -183,6 +183,17 @@ pcp->prom_name[err] = 0; else pcp->prom_name[0] = 0; + + err = prom_getproperty(device_prom_node, + "assigned-addresses", + (char *)pcp->prom_assignments, + sizeof(pcp->prom_assignments)); + if (err == 0 || err == -1) + pcp->num_prom_assignments = 0; + else + pcp->num_prom_assignments = + (err / sizeof(pcp->prom_assignments[0])); + if (strcmp(pcp->prom_name, "ebus") == 0) { struct linux_prom_ebus_ranges erng[PROM_PCIRNG_MAX]; int iter; @@ -208,16 +219,6 @@ ap->size_lo = ep->size; } pcp->num_prom_assignments = err; - } else { - err = prom_getproperty(device_prom_node, - "assigned-addresses", - (char *)pcp->prom_assignments, - sizeof(pcp->prom_assignments)); - if (err == 0 || err == -1) - pcp->num_prom_assignments = 0; - else - pcp->num_prom_assignments = - (err / sizeof(pcp->prom_assignments[0])); } fixup_obp_assignments(pdev, pcp); @@ -668,6 +669,20 @@ unsigned int prom_irq; int prom_node = pcp->prom_node; int err; + + /* If this is an empty EBUS device, sometimes OBP fails to + * give it a valid fully specified interrupts property. + * The EBUS hooked up to SunHME on PCI I/O boards of + * Ex000 systems is one such case. + * + * The interrupt is not important so just ignore it. + */ + if (pdev->vendor == PCI_VENDOR_ID_SUN && + pdev->device == PCI_DEVICE_ID_SUN_EBUS && + !prom_getchild(prom_node)) { + pdev->irq = 0; + return; + } err = prom_getproperty(prom_node, "interrupts", (char *)&prom_irq, sizeof(prom_irq)); Index: pci_psycho.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/pci_psycho.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- pci_psycho.c 10 Jun 2003 01:13:18 -0000 1.3 +++ pci_psycho.c 10 Jun 2003 01:46:17 -0000 1.4 @@ -1480,8 +1480,7 @@ { unsigned int busrange[2]; struct pci_pbm_info *pbm; - char namebuf[64]; - int err, len; + int err; if (is_pbm_a) { pbm = &p->pbm_A; @@ -1490,13 +1489,7 @@ pbm->mem_space.start = p->controller_regs + PSYCHO_MEMSPACE_A; } else { pbm = &p->pbm_B; - pbm->pci_first_slot = 1; - len = prom_getproperty(prom_root_node, "name", - namebuf, sizeof(namebuf)); - if (len > 0) { - if (!strcmp(namebuf, "SUNW,Ultra-1-Engine")) - pbm->pci_first_slot = 2; - } + pbm->pci_first_slot = 2; pbm->io_space.start = p->controller_regs + PSYCHO_IOSPACE_B; pbm->mem_space.start = p->controller_regs + PSYCHO_MEMSPACE_B; } Index: power.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/power.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- power.c 10 Apr 2002 15:21:23 -0000 1.2 +++ power.c 10 Jun 2003 01:46:17 -0000 1.3 @@ -61,7 +61,7 @@ sprintf(current->comm, "powerd"); again: - while(button_pressed == 0) { + while (button_pressed == 0) { spin_lock_irq(¤t->sigmask_lock); flush_signals(current); spin_unlock_irq(¤t->sigmask_lock); @@ -98,16 +98,19 @@ found: power_reg = (unsigned long)ioremap(edev->resource[0].start, 0x4); printk("power: Control reg at %016lx ... ", power_reg); - if (kernel_thread(powerd, 0, CLONE_FS) < 0) { - printk("Failed to start power daemon.\n"); - return; - } - printk("powerd running.\n"); - if (edev->irqs[0] != 0) { + if (edev->irqs[0] != PCI_IRQ_NONE) { + if (kernel_thread(powerd, 0, CLONE_FS) < 0) { + printk("Failed to start power daemon.\n"); + return; + } + printk("powerd running.\n"); + if (request_irq(edev->irqs[0], power_handler, SA_SHIRQ, "power", (void *) power_reg) < 0) printk("power: Error, cannot register IRQ handler.\n"); + } else { + printk("not using powerd.\n"); } } #endif /* CONFIG_PCI */ Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/process.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- process.c 10 Jun 2003 01:13:18 -0000 1.3 +++ process.c 10 Jun 2003 01:46:17 -0000 1.4 @@ -471,6 +471,7 @@ csp += STACK_BIAS; psp += STACK_BIAS; __get_user(fp, &(((struct reg_window *)psp)->ins[6])); + fp += STACK_BIAS; } else __get_user(fp, &(((struct reg_window32 *)psp)->ins[6])); Index: rtrap.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/rtrap.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- rtrap.S 10 Jun 2003 01:13:18 -0000 1.3 +++ rtrap.S 10 Jun 2003 01:46:17 -0000 1.4 @@ -40,8 +40,7 @@ __handle_user_windows: call fault_in_user_windows wrpr %g0, RTRAP_PSTATE, %pstate - ba,pt %xcc, __handle_user_windows_continue - wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate + wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate /* Redo sched+sig checks */ ldx [%g6 + AOFF_task_need_resched], %l0 brz,pt %l0, 1f Index: smp.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/smp.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- smp.c 10 Jun 2003 01:13:18 -0000 1.3 +++ smp.c 10 Jun 2003 01:46:17 -0000 1.4 @@ -218,7 +218,7 @@ atomic_inc(&init_mm.mm_count); current->active_mm = &init_mm; - while (!smp_processors_ready) + while (!smp_threads_ready) membar("#LoadLoad"); } @@ -269,7 +269,7 @@ continue; if ((cpucount + 1) == max_cpus) - break; + goto ignorecpu; if (cpu_present_map & (1UL << i)) { unsigned long entry = (unsigned long)(&sparc64_cpu_startup); unsigned long cookie = (unsigned long)(&cpu_new_task); @@ -314,13 +314,15 @@ } } if (!callin_flag) { +ignorecpu: cpu_present_map &= ~(1UL << i); __cpu_number_map[i] = -1; } } cpu_new_task = NULL; if (cpucount == 0) { - printk("Error: only one processor found.\n"); + if (max_cpus != 1) + printk("Error: only one processor found.\n"); cpu_present_map = (1UL << smp_processor_id()); } else { unsigned long bogosum = 0; @@ -676,6 +678,39 @@ atomic_inc(&dcpage_flushes_xcall); #endif } + } +} + +void flush_dcache_page_all(struct mm_struct *mm, struct page *page) +{ + if (smp_processors_ready) { + unsigned long mask = cpu_present_map & ~(1UL << smp_processor_id()); + u64 data0; + +#ifdef CONFIG_DEBUG_DCFLUSH + atomic_inc(&dcpage_flushes); +#endif + if (mask == 0UL) + goto flush_self; + if (tlb_type == spitfire) { + data0 = ((u64)&xcall_flush_dcache_page_spitfire); + if (page->mapping != NULL) + data0 |= ((u64)1 << 32); + spitfire_xcall_deliver(data0, + __pa(page->virtual), + (u64) page->virtual, + mask); + } else { + data0 = ((u64)&xcall_flush_dcache_page_cheetah); + cheetah_xcall_deliver(data0, + __pa(page->virtual), + 0, mask); + } +#ifdef CONFIG_DEBUG_DCFLUSH + atomic_inc(&dcpage_flushes_xcall); +#endif + flush_self: + __local_flush_dcache_page(page); } } Index: sys_sparc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/sys_sparc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- sys_sparc.c 10 Jun 2003 01:13:19 -0000 1.3 +++ sys_sparc.c 10 Jun 2003 01:46:17 -0000 1.4 @@ -40,12 +40,15 @@ return PAGE_SIZE; } -#define COLOUR_ALIGN(addr) (((addr)+SHMLBA-1)&~(SHMLBA-1)) +#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; unsigned long task_size = TASK_SIZE; + int do_color_align; if (flags & MAP_FIXED) { /* We do not accept a shared mapping if it would violate @@ -63,11 +66,14 @@ if (!addr) addr = TASK_UNMAPPED_BASE; - if (flags & MAP_SHARED) - addr = COLOUR_ALIGN(addr); + do_color_align = 0; + if (filp || (flags & MAP_SHARED)) + do_color_align = 1; + + if (do_color_align) + addr = COLOUR_ALIGN(addr, pgoff); else addr = PAGE_ALIGN(addr); - task_size -= len; for (vmm = find_vma(current->mm, addr); ; vmm = vmm->vm_next) { @@ -81,8 +87,8 @@ if (!vmm || addr + len <= vmm->vm_start) return addr; addr = vmm->vm_end; - if (flags & MAP_SHARED) - addr = COLOUR_ALIGN(addr); + if (do_color_align) + addr = COLOUR_ALIGN(addr, pgoff); } } Index: time.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/kernel/time.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- time.c 10 Jun 2003 01:13:19 -0000 1.3 +++ time.c 10 Jun 2003 01:46:18 -0000 1.4 @@ -330,8 +330,6 @@ #endif u8 tmp; - do_get_fast_time = do_gettimeofday; - if (!mregs && !dregs) { prom_printf("Something wrong, clock regs not mapped yet.\n"); prom_halt(); |
From: Dave A. <ai...@us...> - 2003-06-10 02:08:36
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/alpha/lib In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/alpha/lib Modified Files: dec_and_lock.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: dec_and_lock.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/alpha/lib/dec_and_lock.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- dec_and_lock.c 10 Apr 2002 13:07:22 -0000 1.1 +++ dec_and_lock.c 10 Jun 2003 01:45:49 -0000 1.2 @@ -27,6 +27,7 @@ br $atomic_dec_and_lock_1..ng \n\ .subsection 2 \n\ 4: br 1b \n\ + .previous \n\ .end atomic_dec_and_lock"); static int __attribute__((unused)) |
From: Dave A. <ai...@us...> - 2003-06-10 02:08:34
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/cris/boot/rescue In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/cris/boot/rescue Modified Files: Makefile head.S Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/boot/rescue/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Makefile 10 Apr 2002 14:15:58 -0000 1.1 +++ Makefile 10 Jun 2003 01:45:50 -0000 1.2 @@ -3,6 +3,8 @@ # ifndef TOPDIR TOPDIR = ../../../.. +HPATH = $(TOPDIR)/include +export HPATH endif CC = gcc-cris -mlinux -I $(TOPDIR)/include CFLAGS = -O2 @@ -35,7 +37,7 @@ dd if=kimagerescue_tmp.bin of=kimagerescue.bin bs=1 count=784 rm ktr.bin tmp2423 kimagerescue_tmp.bin -head.o: head.S +head.o: head.S $(CC) -D__ASSEMBLY__ -traditional -c $< -o $*.o testrescue.o: testrescue.S @@ -52,3 +54,8 @@ modules: modules-install: + +depend: + $(CC) -M *.S > .depend + +-include .depend Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/boot/rescue/head.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- head.S 10 Apr 2002 14:15:58 -0000 1.1 +++ head.S 10 Jun 2003 01:45:50 -0000 1.2 @@ -114,7 +114,7 @@ #define NOP_DI 0xf025050f #define RAM_INIT_MAGIC 0x56902387 - + .text ;; This is the entry point of the rescue code @@ -144,7 +144,13 @@ jumptarget: .dword 0xffffffff ; can be overwritten later to insert new code -no_newjump: +no_newjump: +#ifdef CONFIG_ETRAX_ETHERNET + ;; Start MII clock to make sure it is running when tranceiver is reset + move.d 0x3, $r0 ; enable = on, phy = mii_clk + move.d $r0, [R_NETWORK_GEN_CONFIG] +#endif + ;; We need to setup the bus registers before we start using the DRAM #include "../../lib/dram_init.S" |
From: Dave A. <ai...@us...> - 2003-06-10 02:08:14
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/ppc/xmon Modified Files: nonstdio.h start.c subr_prf.c xmon.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: nonstdio.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/nonstdio.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- nonstdio.h 10 Apr 2002 15:04:13 -0000 1.2 +++ nonstdio.h 10 Jun 2003 01:46:06 -0000 1.3 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.nonstdio.h 1.5 05/17/01 18:14:23 cort + * BK Id: SCCS/s.nonstdio.h 1.8 12/01/01 20:09:07 benh */ typedef int FILE; extern FILE *xmon_stdin, *xmon_stdout; @@ -21,5 +21,6 @@ extern void xmon_printf(const char *, ...); extern void xmon_fprintf(void *, const char *, ...); extern void xmon_sprintf(char *, const char *, ...); +extern void xmon_puts(char*); #define perror(s) printf("%s: no files!\n", (s)) Index: start.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/start.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- start.c 10 Apr 2002 15:04:13 -0000 1.2 +++ start.c 10 Jun 2003 01:46:06 -0000 1.3 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.start.c 1.16 08/20/01 22:17:58 paulus + * BK Id: SCCS/s.start.c 1.18 12/01/01 20:09:07 benh */ /* * Copyright (C) 1996 Paul Mackerras. @@ -13,9 +13,11 @@ #include <linux/pmu.h> #include <linux/cuda.h> #include <linux/kernel.h> +#include <linux/errno.h> #include <asm/prom.h> #include <asm/bootx.h> -#include <asm/feature.h> +#include <asm/machdep.h> +#include <asm/pmac_feature.h> #include <asm/processor.h> #include <asm/delay.h> #include <asm/btext.h> @@ -32,7 +34,7 @@ static int use_screen; static int via_modem; static int xmon_use_sccb; -static struct device_node *macio_node; +static struct device_node *channel_node; #define TB_SPEED 25000000 @@ -99,6 +101,7 @@ np = np->sibling; if (np != NULL) { /* XXX should parse this properly */ + channel_node = np; slots = get_property(np, "slot-names", &l); if (slots != NULL && l >= 10 && strcmp(slots+4, "Modem") == 0) @@ -126,10 +129,8 @@ RXRDY = 1; np = find_devices("mac-io"); - if (np && np->n_addrs) { - macio_node = np; + if (np && np->n_addrs) addr = np->addrs[0].address + 0x13020; - } base = (volatile unsigned char *) ioremap(addr & PAGE_MASK, PAGE_SIZE); sccc = base + (addr & ~PAGE_MASK); sccd = sccc + 0x10; @@ -349,12 +350,19 @@ { int i, x; - if (macio_node != 0) - feature_set(macio_node, FEATURE_Serial_enable); - if (via_modem && macio_node != 0) { + if (channel_node != 0) + pmac_call_feature( + PMAC_FTR_SCC_ENABLE, + channel_node, + PMAC_SCC_ASYNC | PMAC_SCC_FLAG_XMON, 1); + printk(KERN_INFO "Serial port locked ON by debugger !\n"); + if (via_modem && channel_node != 0) { unsigned int t0; - feature_set(macio_node, FEATURE_Modem_power); + pmac_call_feature( + PMAC_FTR_MODEM_ENABLE, + channel_node, 0, 1); + printk(KERN_INFO "Modem powered up by debugger !\n"); t0 = readtb(); while (readtb() - t0 < 3*TB_SPEED) eieio(); Index: subr_prf.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/subr_prf.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- subr_prf.c 10 Apr 2002 15:04:13 -0000 1.2 +++ subr_prf.c 10 Jun 2003 01:46:07 -0000 1.3 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.subr_prf.c 1.5 05/17/01 18:14:23 cort + * BK Id: SCCS/s.subr_prf.c 1.8 12/01/01 20:09:07 benh */ /* * Written by Cort Dougan to replace the version originally used @@ -51,3 +51,8 @@ va_end(ap); } +void +xmon_puts(char *s) +{ + xmon_write(stdout, s, strlen(s)); +} Index: xmon.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/xmon.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- xmon.c 10 Apr 2002 15:04:13 -0000 1.2 +++ xmon.c 10 Jun 2003 01:46:07 -0000 1.3 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.xmon.c 1.16 09/22/01 15:25:10 trini + * BK Id: SCCS/s.xmon.c 1.18 12/01/01 20:09:07 benh */ /* * Routines providing a simple monitor for use on the PowerMac. @@ -90,6 +90,7 @@ static void write_spr(int, unsigned); static void super_regs(void); static void print_sysmap(void); +static void sysmap_lookup(void); static void remove_bpts(void); static void insert_bpts(void); static struct bpt *at_breakpoint(unsigned pc); @@ -98,10 +99,7 @@ #ifdef CONFIG_SMP static void cpu_cmd(void); #endif /* CONFIG_SMP */ -#if 0 /* Makes compile with -Wall */ -static char *pretty_print_addr(unsigned long addr); -static char *lookup_name(unsigned long addr); -#endif +static int pretty_print_addr(unsigned long addr); static void csum(void); extern int print_insn_big_powerpc(FILE *, unsigned long, unsigned); @@ -112,6 +110,8 @@ extern void xmon_enter(void); extern void xmon_leave(void); +extern char* xmon_find_symbol(unsigned long addr, unsigned long* saddr); +extern unsigned long xmon_symbol_to_addr(char* symbol); #define GETWORD(v) (((v)[0] << 24) + ((v)[1] << 16) + ((v)[2] << 8) + (v)[3]) @@ -121,6 +121,7 @@ #define isalnum(c) (('0' <= (c) && (c) <= '9') \ || ('a' <= (c) && (c) <= 'z') \ || ('A' <= (c) && (c) <= 'Z')) +#define isspace(c) (c == ' ' || c == '\t' || c == 10 || c == 13 || c == 0) static char *help_string = "\ Commands:\n\ @@ -138,6 +139,8 @@ r print registers\n\ S print special registers\n\ t print backtrace\n\ + la lookup address in system.map\n\ + ls lookup symbol in system.map\n\ x exit monitor\n\ "; @@ -147,6 +150,19 @@ static struct pt_regs *xmon_regs[NR_CPUS]; +extern inline void sync(void) +{ + asm volatile("sync; isync"); +} + +extern inline void __delay(unsigned int loops) +{ + if (loops != 0) + __asm__ __volatile__("mtctr %0; 1: bdnz 1b" : : + "r" (loops) : "ctr"); +} + + void xmon(struct pt_regs *excp) { @@ -398,6 +414,9 @@ case 'd': dump(); break; + case 'l': + sysmap_lookup(); + break; case 'r': if (excp != NULL) prregs(excp); /* print regs */ @@ -464,8 +483,8 @@ if (cmd == 'i') { /* interrupt other cpu(s) */ cpu = MSG_ALL_BUT_SELF; - scanhex(&cpu); - smp_send_xmon_break(cpu); + if (scanhex(&cpu)) + smp_send_xmon_break(cpu); return; } termch = cmd; @@ -547,8 +566,10 @@ unsigned short fcs; unsigned char v; - scanhex(&adrs); - scanhex(&ncsum); + if (!scanhex(&adrs)) + return; + if (!scanhex(&ncsum)) + return; fcs = 0xffff; for (i = 0; i < ncsum; ++i) { if (mread(adrs+i, &v, 1) == 0) { @@ -580,6 +601,11 @@ mode = 6; else termch = cmd; + cmd = inchar(); + if (cmd == 'p') + mode &= ~4; + else + termch = cmd; dabr.address = 0; dabr.count = 0; dabr.enabled = scanhex(&dabr.address); @@ -588,11 +614,16 @@ dabr.address = (dabr.address & ~7) | mode; break; case 'i': + cmd = inchar(); + if (cmd == 'p') + mode = 2; + else + mode = 3; iabr.address = 0; iabr.count = 0; iabr.enabled = scanhex(&iabr.address); if (iabr.enabled) - iabr.address |= 3; + iabr.address |= mode; scanhex(&iabr.count); break; #endif @@ -625,6 +656,8 @@ printf("r"); if (dabr.address & 2) printf("w"); + if (dabr.address & 4) + printf("p"); printf("]\n"); } if (iabr.enabled) @@ -674,7 +707,8 @@ for (; sp != 0; sp = stack[0]) { if (mread(sp, stack, sizeof(stack)) != sizeof(stack)) break; - printf("%x ", stack[1]); + pretty_print_addr(stack[1]); + printf(" "); if (stack[1] == (unsigned) &ret_from_intercept || stack[1] == (unsigned) &ret_from_except || stack[1] == (unsigned) &ret_from_syscall_1 @@ -688,8 +722,8 @@ if (mread(sp, stack, sizeof(stack)) != sizeof(stack)) break; } + printf("\n"); } - printf("\n"); } int @@ -707,10 +741,11 @@ #ifdef CONFIG_SMP printf("cpu %d: ", smp_processor_id()); #endif /* CONFIG_SMP */ - printf("vector: %x at pc = %x", - fp->trap, fp->nip); - printf(", lr = %x, msr = %x, sp = %x [%x]\n", - fp->link, fp->msr, fp->gpr[1], fp); + printf("vector: %x at pc = ", fp->trap); + pretty_print_addr(fp->nip); + printf(", lr = "); + pretty_print_addr(fp->link); + printf("\nmsr = %x, sp = %x [%x]\n", fp->msr, fp->gpr[1], fp); if (fp->trap == 0x300 || fp->trap == 0x600) printf("dar = %x, dsisr = %x\n", fp->dar, fp->dsisr); if (current) @@ -795,8 +830,16 @@ print_sysmap(void) { extern char *sysmap; - if ( sysmap ) - printf("System.map: \n%s", sysmap); + if ( sysmap ) { + printf("System.map: \n"); + if( setjmp(bus_error_jmp) == 0 ) { + debugger_fault_handler = handle_fault; + sync(); + xmon_puts(sysmap); + sync(); + } + debugger_fault_handler = 0; + } else printf("No System.map\n"); } @@ -1028,17 +1071,6 @@ /* * Stuff for reading and writing memory safely */ -extern inline void sync(void) -{ - asm volatile("sync; isync"); -} - -extern inline void __delay(unsigned int loops) -{ - if (loops != 0) - __asm__ __volatile__("mtctr %0; 1: bdnz 1b" : : - "r" (loops) : "ctr"); -} int mread(unsigned adrs, void *buf, int size) @@ -1565,6 +1597,24 @@ } printf("invalid register name '%%%s'\n", regname); return 0; + } else if (c == '$') { + static char symname[64]; + int i; + for (i=0; i<63; i++) { + c = inchar(); + if (isspace(c)) { + termch = c; + break; + } + symname[i] = c; + } + symname[i++] = 0; + *vp = xmon_symbol_to_addr(symname); + if (!(*vp)) { + printf("unknown symbol\n"); + return 0; + } + return 1; } d = hexdigit(c); @@ -1652,38 +1702,169 @@ lineptr = str; } -#if 0 /* Makes compile with -Wall */ -static char *pretty_print_addr(unsigned long addr) +void +sysmap_lookup(void) { - printf("%08x", addr); - if ( lookup_name(addr) ) - printf(" %s", lookup_name(addr) ); - return NULL; + int type = inchar(); + unsigned addr; + static char tmp[64]; + char* cur; + + extern char *sysmap; + extern unsigned long sysmap_size; + if ( !sysmap || !sysmap_size ) + return; + + switch(type) { + case 'a': + if (scanhex(&addr)) { + pretty_print_addr(addr); + printf("\n"); + } + termch = 0; + break; + case 's': + getstring(tmp, 64); + if( setjmp(bus_error_jmp) == 0 ) { + debugger_fault_handler = handle_fault; + sync(); + cur = sysmap; + do { + cur = strstr(cur, tmp); + if (cur) { + static char res[64]; + char *p, *d; + p = cur; + while(p > sysmap && *p != 10) + p--; + if (*p == 10) p++; + d = res; + while(*p && p < (sysmap + sysmap_size) && *p != 10) + *(d++) = *(p++); + *(d++) = 0; + printf("%s\n", res); + cur++; + } + } while (cur); + sync(); + } + debugger_fault_handler = 0; + termch = 0; + break; + } } -#endif -#if 0 /* Makes compile with -Wall */ -static char *lookup_name(unsigned long addr) +static int +pretty_print_addr(unsigned long addr) { + char *sym; + unsigned long saddr; + + printf("%08x", addr); + sym = xmon_find_symbol(addr, &saddr); + if (sym) + printf(" (%s+0x%x)", sym, addr-saddr); + return (sym != 0); +} + +char* +xmon_find_symbol(unsigned long addr, unsigned long* saddr) +{ + static char rbuffer[64]; + char *p, *ep, *limit; + unsigned long prev, next; + char* psym; + extern char *sysmap; extern unsigned long sysmap_size; - char *c = sysmap; - unsigned long cmp; if ( !sysmap || !sysmap_size ) return NULL; -return NULL; -#if 0 - cmp = simple_strtoul(c, &c, 8); - /* XXX crap, we don't want the whole of the rest of the map - paulus */ - strcpy( last, strsep( &c, "\n")); - while ( c < (sysmap+sysmap_size) ) - { - cmp = simple_strtoul(c, &c, 8); - if ( cmp < addr ) - break; - strcpy( last, strsep( &c, "\n")); + + prev = 0; + psym = NULL; + p = sysmap; + limit = p + sysmap_size; + if( setjmp(bus_error_jmp) == 0 ) { + debugger_fault_handler = handle_fault; + sync(); + do { + next = simple_strtoul(p, &p, 16); + if (next > addr && prev <= addr) { + if (!psym) + goto bail; + ep = rbuffer; + p = psym; + while(*p && p < limit && *p == 32) + p++; + while(*p && p < limit && *p != 10 && (ep - rbuffer) < 63) + *(ep++) = *(p++); + *(ep++) = 0; + if (saddr) + *saddr = prev; + debugger_fault_handler = 0; + return rbuffer; + } + prev = next; + psym = p; + while(*p && p < limit && *p != 10) + p++; + if (*p) p++; + } while(*p && p < limit && next); +bail: + sync(); } - return last; -#endif + debugger_fault_handler = 0; + return NULL; } -#endif + +unsigned long +xmon_symbol_to_addr(char* symbol) +{ + char *p, *cur; + char *match; + int goodness = 0; + int result = 0; + + extern char *sysmap; + extern unsigned long sysmap_size; + if ( !sysmap || !sysmap_size ) + return 0; + + if( setjmp(bus_error_jmp) == 0 ) { + debugger_fault_handler = handle_fault; + sync(); + cur = sysmap; + while(cur) { + cur = strstr(cur, symbol); + if (cur) { + int gd = 1; + + /* best match if equal, better match if + * begins with + */ + if (cur == sysmap || *(cur-1) == ' ') { + gd++; + if (cur[strlen(symbol)] == 10) + gd++; + } + if (gd > goodness) { + match = cur; + goodness = gd; + if (gd == 3) + break; + } + cur++; + } + } + if (goodness) { + p = match; + while(p > sysmap && *p != 10) + p--; + if (*p == 10) p++; + result = simple_strtoul(p, &p, 16); + } + sync(); + } + debugger_fault_handler = 0; + return result; +} |
From: Dave A. <ai...@us...> - 2003-06-10 02:08:11
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/mm In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/ppc/mm Modified Files: init.c mmu_decl.h pgtable.c ppc_mmu.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/mm/init.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- init.c 10 Apr 2002 15:04:12 -0000 1.2 +++ init.c 10 Jun 2003 01:46:06 -0000 1.3 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.init.c 1.36 09/22/01 14:03:09 paulus + * BK Id: SCCS/s.init.c 1.40 01/25/02 15:15:24 benh */ /* * PowerPC version @@ -49,8 +49,6 @@ #include "mem_pieces.h" #include "mmu_decl.h" -#define MAX_LOW_MEM (0xF0000000UL - KERNELBASE) - mmu_gather_t mmu_gathers[NR_CPUS]; void *end_of_DRAM; @@ -62,6 +60,9 @@ int boot_mapsize; unsigned long totalram_pages; unsigned long totalhigh_pages; +#ifdef CONFIG_ALL_PPC +unsigned long agp_special_page; +#endif extern char _end[]; extern char etext[], _stext[]; @@ -85,7 +86,7 @@ char *klimit = _end; struct mem_pieces phys_avail; -extern char *sysmap; +extern char *sysmap; extern unsigned long sysmap_size; /* @@ -97,8 +98,6 @@ /* max amount of RAM to use */ unsigned long __max_memory; -/* max amount of low RAM to map in */ -unsigned long __max_low_memory = MAX_LOW_MEM; int do_check_pgt_cache(int low, int high) { @@ -313,12 +312,7 @@ if (__max_memory && total_memory > __max_memory) total_memory = __max_memory; total_lowmem = total_memory; - if (total_lowmem > __max_low_memory) { - total_lowmem = __max_low_memory; -#ifndef CONFIG_HIGHMEM - total_memory = total_lowmem; -#endif /* CONFIG_HIGHMEM */ - } + adjust_total_lowmem(); end_of_DRAM = __va(total_lowmem); set_phys_avail(total_lowmem); @@ -352,9 +346,10 @@ ppc_md.progress("MMU:exit", 0x211); #ifdef CONFIG_BOOTX_TEXT - /* Must be done last, or ppc_md.progress will die */ - if (have_of) - map_boot_text(); + /* By default, we are no longer mapped */ + boot_text_mapped = 0; + /* Must be done last, or ppc_md.progress will die. */ + map_boot_text(); #endif } @@ -474,20 +469,22 @@ } #endif /* CONFIG_BLK_DEV_INITRD */ -#if defined(CONFIG_ALL_PPC) +#if defined(CONFIG_ALL_PPC) /* mark the RTAS pages as reserved */ if ( rtas_data ) for (addr = (ulong)__va(rtas_data); addr < PAGE_ALIGN((ulong)__va(rtas_data)+rtas_size) ; addr += PAGE_SIZE) SetPageReserved(virt_to_page(addr)); + if (agp_special_page) + SetPageReserved(virt_to_page(agp_special_page)); #endif /* defined(CONFIG_ALL_PPC) */ if ( sysmap ) for (addr = (unsigned long)sysmap; addr < PAGE_ALIGN((unsigned long)sysmap+sysmap_size) ; addr += PAGE_SIZE) SetPageReserved(virt_to_page(addr)); - + for (addr = PAGE_OFFSET; addr < (unsigned long)end_of_DRAM; addr += PAGE_SIZE) { if (!PageReserved(virt_to_page(addr))) @@ -526,6 +523,10 @@ if (sysmap) printk("System.map loaded at 0x%08x for debugger, size: %ld bytes\n", (unsigned int)sysmap, sysmap_size); +#if defined(CONFIG_ALL_PPC) + if (agp_special_page) + printk(KERN_INFO "AGP special page: 0x%08lx\n", agp_special_page); +#endif /* defined(CONFIG_ALL_PPC) */ mem_init_done = 1; } @@ -572,6 +573,20 @@ /* remove the sysmap pages from the available memory */ if (sysmap) mem_pieces_remove(&phys_avail, __pa(sysmap), sysmap_size, 1); + /* Because of some uninorth weirdness, we need a page of + * memory as high as possible (it must be outside of the + * bus address seen as the AGP aperture). It will be used + * by the r128 DRM driver + * + * FIXME: We need to make sure that page doesn't overlap any of the\ + * above. This could be done by improving mem_pieces_find to be able + * to do a backward search from the end of the list. + */ + if (_machine == _MACH_Pmac && find_devices("uni-north-agp")) { + agp_special_page = (total_memory - PAGE_SIZE); + mem_pieces_remove(&phys_avail, agp_special_page, PAGE_SIZE, 0); + agp_special_page = (unsigned long)__va(agp_special_page); + } #endif /* CONFIG_ALL_PPC */ } Index: mmu_decl.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/mm/mmu_decl.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- mmu_decl.h 10 Apr 2002 15:04:12 -0000 1.1 +++ mmu_decl.h 10 Jun 2003 01:46:06 -0000 1.2 @@ -24,7 +24,8 @@ */ extern void mapin_ram(void); -extern void bat_mapin_ram(void); +extern void bat_mapin_ram(unsigned long bat2, unsigned long bat3); +extern void adjust_total_lowmem(void); extern int map_page(unsigned long va, unsigned long pa, int flags); extern void setbat(int index, unsigned long virt, unsigned long phys, unsigned int size, int flags); Index: pgtable.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/mm/pgtable.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- pgtable.c 10 Apr 2002 15:04:12 -0000 1.1 +++ pgtable.c 10 Jun 2003 01:46:06 -0000 1.2 @@ -41,6 +41,11 @@ unsigned long ioremap_bot; int io_bat_index; +/* Maximum 768Mb of lowmem. On SMP, this value will be + * trimmed down to whatever can be covered by BATs though. + */ +#define MAX_LOW_MEM 0x30000000 + #ifndef CONFIG_SMP struct pgtable_cache_struct quicklists; #endif @@ -49,6 +54,10 @@ #define HAVE_BATS 1 #endif +#ifdef HAVE_BATS +static unsigned long __bat2, __bat3; +#endif + extern char etext[], _stext[]; #ifdef HAVE_BATS @@ -186,6 +195,65 @@ return err; } +void __init +adjust_total_lowmem(void) +{ + unsigned long max_low_mem = MAX_LOW_MEM; + +#ifdef HAVE_BATS + unsigned long bat_max = 0x10000000; + unsigned long align; + unsigned long ram = total_lowmem; + int is601 = 0; + + /* 601s have smaller BATs */ + if (PVR_VER(mfspr(PVR)) == 1) { + bat_max = 0x00800000; + is601 = 1; + } + + /* Make sure we don't map a block larger than the + smallest alignment of the physical address. */ + /* alignment of ram_phys_base */ + align = ~(ram_phys_base-1) & ram_phys_base; + /* set BAT block size to MIN(max_size, align) */ + if (align && align < bat_max) + bat_max = align; + + /* Calculate BAT values */ + __bat2 = 1UL << __ilog2(ram); + if (__bat2 > bat_max) + __bat2 = bat_max; + ram -= __bat2; + if (ram) { + __bat3 = 1UL << __ilog2(ram); + if (__bat3 > bat_max) + __bat3 = bat_max; + ram -= __bat3; + } + + printk(KERN_INFO "Memory BAT mapping: BAT2=%ldMb, BAT3=%ldMb, residual: %ldMb\n", + __bat2 >> 20, __bat3 >> 20, ram >> 20); + + /* On SMP, we limit the lowmem to the area mapped with BATs. + * We also assume nobody will do SMP with 601s + */ +#ifdef CONFIG_SMP + if (!is601) + max_low_mem = __bat2 + __bat3; +#endif /* CONFIG_SMP */ + +#endif /* HAVE_BATS */ + if (total_lowmem > max_low_mem) { + total_lowmem = max_low_mem; +#ifndef CONFIG_HIGHMEM + printk(KERN_INFO "Warning, memory limited to %ld Mb, use CONFIG_HIGHMEM" + " to reach %ld Mb\n", max_low_mem >> 20, total_lowmem >> 20); + total_memory = total_lowmem; +#endif /* CONFIG_HIGHMEM */ + } +} + /* * Map in all of physical memory starting at KERNELBASE. */ @@ -195,7 +263,7 @@ #ifdef HAVE_BATS if (!__map_without_bats) - bat_mapin_ram(); + bat_mapin_ram(__bat2, __bat3); #endif /* HAVE_BATS */ v = KERNELBASE; Index: ppc_mmu.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/mm/ppc_mmu.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ppc_mmu.c 13 Apr 2002 16:09:15 -0000 1.2 +++ ppc_mmu.c 10 Jun 2003 01:46:06 -0000 1.3 @@ -86,37 +86,16 @@ return 0; } -void __init bat_mapin_ram(void) +void __init bat_mapin_ram(unsigned long bat2, unsigned long bat3) { - unsigned long tot, bl, done; - unsigned long max_size = (256<<20); - unsigned long align; - - /* Set up BAT2 and if necessary BAT3 to cover RAM. */ - - /* Make sure we don't map a block larger than the - smallest alignment of the physical address. */ - /* alignment of ram_phys_base */ - align = ~(ram_phys_base-1) & ram_phys_base; - /* set BAT block size to MIN(max_size, align) */ - if (align && align < max_size) - max_size = align; - + unsigned long tot, done; + tot = total_lowmem; - for (bl = 128<<10; bl < max_size; bl <<= 1) { - if (bl * 2 > tot) - break; - } - - setbat(2, KERNELBASE, ram_phys_base, bl, _PAGE_KERNEL); + setbat(2, KERNELBASE, ram_phys_base, bat2, _PAGE_KERNEL); done = (unsigned long)bat_addrs[2].limit - KERNELBASE + 1; - if ((done < tot) && !bat_addrs[3].limit) { - /* use BAT3 to cover a bit more */ + if ((done < tot) && !bat_addrs[3].limit && bat3) { tot -= done; - for (bl = 128<<10; bl < max_size; bl <<= 1) - if (bl * 2 > tot) - break; - setbat(3, KERNELBASE+done, ram_phys_base+done, bl, + setbat(3, KERNELBASE+done, ram_phys_base+done, bat3, _PAGE_KERNEL); } } |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:54
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/tools In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/ia64/tools Modified Files: Makefile Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/tools/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 14 Jan 2001 19:53:25 -0000 1.1.1.1 +++ Makefile 10 Jun 2003 01:45:57 -0000 1.2 @@ -31,8 +31,10 @@ offsets.h: print_offsets ./print_offsets > offsets.h +comma := , + print_offsets: print_offsets.c FORCE_RECOMPILE - $(CC) $(CFLAGS) print_offsets.c -o $@ + $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) print_offsets.c -o $@ FORCE_RECOMPILE: @@ -42,7 +44,7 @@ $(AWK) -f print_offsets.awk $^ > $@ print_offsets.s: print_offsets.c - $(CC) $(CFLAGS) -S print_offsets.c -o $@ + $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -S print_offsets.c -o $@ endif |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:53
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/cris/kernel Modified Files: entry.S head.S irq.c ksyms.c process.c ptrace.c setup.c time.c traps.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: entry.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/entry.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- entry.S 9 Apr 2002 17:03:16 -0000 1.2 +++ entry.S 10 Jun 2003 01:45:52 -0000 1.3 @@ -7,8 +7,20 @@ * Authors: Bjorn Wesen (bj...@ax...) * * $Log$ - * Revision 1.2 2002/04/09 17:03:16 atp - * synch 2.4.15 commit 29 + * Revision 1.3 2003/06/10 01:45:52 airlied + * DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) + * + * Revision 1.38 2002/01/16 15:15:30 bjornw + * Use a C-code compatible watchdog reset when NICE_DOGGY is enabled + * + * Revision 1.37 2001/12/07 17:03:55 bjornw + * Call a c-hook called watchdog_bite_hook instead of show_registers directly + * + * Revision 1.36 2001/11/22 13:36:36 bjornw + * * In ret_from_intr, check regs->dccr for usermode reentrance instead of + * DCCR explicitely (because the latter might not reflect current reality) + * * In mmu_bus_fault, set $r9 _after_ calling the C-code instead of before + * since $r9 is call-clobbered and is potentially needed afterwards * * Revision 1.35 2001/10/30 17:10:15 bjornw * Add some syscalls @@ -220,8 +232,11 @@ ret_from_intr: ;; check for resched only if we're going back to user-mode - - move $ccr, $r0 + ;; this test matches the user_regs(regs) macro + ;; we cannot simply test $dccr, because that does not necessarily + ;; reflect what mode we'll return into. + + move.d [$sp + LDCCR], $r0; regs->dccr btstq 8, $r0 ; U-flag bpl _Rexit ; go back directly nop @@ -471,8 +486,6 @@ moveq 1, $r10 push $r10 ; frametype == 1, BUSFAULT frame type - moveq 0, $r9 ; busfault is equivalent to an irq - move.d $sp, $r10 ; pt_regs argument to handle_mmu_bus_fault jsr handle_mmu_bus_fault ; in arch/cris/mm/fault.c @@ -482,6 +495,8 @@ ;; process due to a SEGV, scheduled due to a page blocking or ;; whatever. + moveq 0, $r9 ; busfault is equivalent to an irq + ba ret_from_intr nop @@ -562,6 +577,16 @@ ;; We'll see this in ksymoops dumps. Watchdog_bite: +#ifdef CONFIG_ETRAX_WATCHDOG_NICE_DOGGY + ;; We just restart the watchdog here to be sure we dont get + ;; hit while printing the watchdogmsg below + ;; This restart is compatible with the rest of the C-code, so + ;; the C-code can keep restarting the watchdog after this point. + ;; The non-NICE_DOGGY code below though, disables the possibility + ;; to restart since it changes the watchdog key, to avoid any + ;; buggy loops etc. keeping the watchdog alive after this. + jsr reset_watchdog +#else ;; We need to extend the 3.3ms after the NMI at watchdog bite, so we have ;; time for an oops-dump over a 115k2 serial wire. Another 100ms should do. @@ -578,7 +603,8 @@ ^ WD_INIT) \ | IO_STATE (R_WATCHDOG, enable, start), $r10 move.d $r10, [$r11] - +#endif + ;; Note that we don't do "setf m" here (or after two necessary NOPs), ;; since *not* doing that saves us from re-entrancy checks. We don't want ;; to get here again due to possible subsequent NMIs; we want the watchdog @@ -588,7 +614,7 @@ jsr printk move.d $sp, $r10 - jsr show_registers + jsr watchdog_bite_hook ;; This nop is here so we see the "Watchdog_bite" label in ksymoops dumps ;; rather than "spurious_interrupt". Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/head.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- head.S 9 Apr 2002 17:03:16 -0000 1.2 +++ head.S 10 Jun 2003 01:45:52 -0000 1.3 @@ -7,8 +7,14 @@ * Authors: Bjorn Wesen (bj...@ax...) * * $Log$ - * Revision 1.2 2002/04/09 17:03:16 atp - * synch 2.4.15 commit 29 + * Revision 1.3 2003/06/10 01:45:52 airlied + * DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) + * + * Revision 1.43 2001/11/08 15:09:43 starvik + * Only start MII clock if Ethernet is configured + * + * Revision 1.42 2001/11/08 14:37:34 starvik + * Start MII clock early to make sure that it is running at tranceiver reset * * Revision 1.41 2001/10/29 14:55:58 pkj * Corrected pa$r0 to par0. @@ -159,7 +165,10 @@ #define CRAMFS_MAGIC 0x28cd3d45 #define RAM_INIT_MAGIC 0x56902387 - + +#define START_ETHERNET_CLOCK IO_STATE(R_NETWORK_GEN_CONFIG, enable, on) |\ + IO_STATE(R_NETWORK_GEN_CONFIG, phy, mii_clk) + ;; exported symbols .globl etrax_irv @@ -304,6 +313,12 @@ ;; after init. .section ".text.init" _inflash: +#ifdef CONFIG_ETRAX_ETHERNET + ;; Start MII clock to make sure it is running when tranceiver is reset + move.d START_ETHERNET_CLOCK, $r0 + move.d $r0, [R_NETWORK_GEN_CONFIG] +#endif + ;; We need to initialze DRAM registers before we start using the DRAM cmp.d RAM_INIT_MAGIC, $r8 ; Already initialized? Index: irq.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/irq.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- irq.c 9 Apr 2002 17:03:16 -0000 1.2 +++ irq.c 10 Jun 2003 01:45:52 -0000 1.3 @@ -137,7 +137,7 @@ /* IRQ0 and 1 are special traps */ void hwbreakpoint(void); void IRQ1_interrupt(void); -BUILD_IRQ(2, 0x04) /* the timer interrupt */ +BUILD_TIMER_IRQ(2, 0x04) /* the timer interrupt is somewhat special */ BUILD_IRQ(3, 0x08) BUILD_IRQ(4, 0x10) BUILD_IRQ(5, 0x20) Index: ksyms.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/ksyms.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ksyms.c 9 Apr 2002 17:03:16 -0000 1.2 +++ ksyms.c 10 Jun 2003 01:45:52 -0000 1.3 @@ -23,34 +23,44 @@ extern void dump_thread(struct pt_regs *, struct user *); extern unsigned long get_cmos_time(void); +extern void __Udiv(void); extern void __ashrdi3(void); extern void iounmap(void *addr); -/* platform dependent support */ - +/* Platform dependent support */ EXPORT_SYMBOL(dump_thread); EXPORT_SYMBOL(enable_irq); EXPORT_SYMBOL(disable_irq); EXPORT_SYMBOL(kernel_thread); EXPORT_SYMBOL(get_cmos_time); +EXPORT_SYMBOL(loops_per_usec); +/* String functions */ +EXPORT_SYMBOL(memcmp); +EXPORT_SYMBOL(memmove); EXPORT_SYMBOL(strtok); EXPORT_SYMBOL(strpbrk); -EXPORT_SYMBOL(simple_strtol); EXPORT_SYMBOL(strstr); - +EXPORT_SYMBOL(strcpy); EXPORT_SYMBOL(strchr); EXPORT_SYMBOL(strcmp); EXPORT_SYMBOL(strlen); EXPORT_SYMBOL(strncat); EXPORT_SYMBOL(strncmp); + +/* Math functions */ +EXPORT_SYMBOL(__Udiv); EXPORT_SYMBOL(__ashrdi3); +/* Memory functions */ EXPORT_SYMBOL(__ioremap); EXPORT_SYMBOL(iounmap); -/* export shadow registers for the CPU I/O pins */ +/* Semaphore functions */ +EXPORT_SYMBOL(__up); +EXPORT_SYMBOL(__down); +/* Export shadow registers for the CPU I/O pins */ EXPORT_SYMBOL(genconfig_shadow); EXPORT_SYMBOL(port_pa_data_shadow); EXPORT_SYMBOL(port_pa_dir_shadow); @@ -59,8 +69,7 @@ EXPORT_SYMBOL(port_pb_config_shadow); EXPORT_SYMBOL(port_g_data_shadow); -/* other stuff */ - +/* Userspace access functions */ EXPORT_SYMBOL(strncpy_from_user); EXPORT_SYMBOL(__strncpy_from_user); EXPORT_SYMBOL(__generic_copy_from_user); @@ -71,8 +80,8 @@ #undef memcpy #undef memset -extern void * memset(void *,int,__kernel_size_t); -extern void * memcpy(void *,const void *,__kernel_size_t); +extern void * memset(void *, int, __kernel_size_t); +extern void * memcpy(void *, const void *, __kernel_size_t); EXPORT_SYMBOL_NOVERS(memcpy); EXPORT_SYMBOL_NOVERS(memset); Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/process.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- process.c 9 Apr 2002 17:03:16 -0000 1.2 +++ process.c 10 Jun 2003 01:45:52 -0000 1.3 @@ -8,8 +8,14 @@ * Authors: Bjorn Wesen (bj...@ax...) * * $Log$ - * Revision 1.2 2002/04/09 17:03:16 atp - * synch 2.4.15 commit 29 + * Revision 1.3 2003/06/10 01:45:52 airlied + * DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) + * + * Revision 1.22 2001/11/13 09:40:43 orjanf + * Added dump_fpu (needed for core dumps). + * + * Revision 1.21 2001/11/12 18:26:21 pkj + * Fixed compiler warnings. * * Revision 1.20 2001/10/03 08:21:39 jonashg * cause_of_death does not exist if CONFIG_SVINTO_SIM is defined. @@ -60,6 +66,7 @@ #include <linux/slab.h> #include <linux/user.h> #include <linux/a.out.h> +#include <linux/elfcore.h> #include <linux/interrupt.h> #include <linux/delay.h> @@ -80,7 +87,6 @@ * setup. */ -static struct vm_area_struct init_mmap = INIT_MMAP; static struct fs_struct init_fs = INIT_FS; static struct files_struct init_files = INIT_FILES; static struct signal_struct init_signals = INIT_SIGNALS; @@ -139,14 +145,15 @@ * code to know about it than the watchdog handler in entry.S and * this code, implementing hard reset through the watchdog. */ +#if defined(CONFIG_ETRAX_WATCHDOG) && !defined(CONFIG_SVINTO_SIM) extern int cause_of_death; +#endif printk("*** HARD RESET ***\n"); cli(); #if defined(CONFIG_ETRAX_WATCHDOG) && !defined(CONFIG_SVINTO_SIM) cause_of_death = 0xbedead; - #else /* Since we dont plan to keep on reseting the watchdog, the key can be arbitrary hence three */ @@ -247,9 +254,10 @@ */ void dump_thread(struct pt_regs * regs, struct user * dump) { - int i; #if 0 -/* changed the size calculations - should hopefully work better. lbt */ + int i; + + /* changed the size calculations - should hopefully work better. lbt */ dump->magic = CMAGIC; dump->start_code = 0; dump->start_stack = regs->esp & ~(PAGE_SIZE - 1); @@ -267,6 +275,12 @@ dump->u_fpvalid = dump_fpu (regs, &dump->i387); #endif +} + +/* Fill in the fpu structure for a core dump. */ +int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) +{ + return 0; } /* Index: ptrace.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/ptrace.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ptrace.c 9 Apr 2002 17:03:16 -0000 1.2 +++ ptrace.c 10 Jun 2003 01:45:53 -0000 1.3 @@ -8,8 +8,11 @@ * Authors: Bjorn Wesen * * $Log$ - * Revision 1.2 2002/04/09 17:03:16 atp - * synch 2.4.15 commit 29 + * Revision 1.3 2003/06/10 01:45:53 airlied + * DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) + * + * Revision 1.8 2001/11/12 18:26:21 pkj + * Fixed compiler warnings. * * Revision 1.7 2001/09/26 11:53:49 bjornw * PTRACE_DETACH works more simple in 2.4.10 @@ -77,8 +80,6 @@ static inline int put_reg(struct task_struct *task, unsigned int regno, unsigned long data) { - unsigned long *addr; - if (regno == PT_USP) task->thread.usp = data; else if (regno < PT_MAX) @@ -210,9 +211,7 @@ break; case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */ - case PTRACE_CONT: { /* restart after signal. */ - long tmp; - + case PTRACE_CONT: /* restart after signal. */ ret = -EIO; if ((unsigned long) data > _NSIG) break; @@ -225,16 +224,13 @@ wake_up_process(child); ret = 0; break; - } /* * make the child exit. Best I can do is send it a sigkill. * perhaps it should be put in the status that it wants to * exit. */ - case PTRACE_KILL: { - long tmp; - + case PTRACE_KILL: ret = 0; if (child->state == TASK_ZOMBIE) /* already dead */ break; @@ -242,11 +238,8 @@ /* TODO: make sure any pending breakpoint is killed */ wake_up_process(child); break; - } - - case PTRACE_SINGLESTEP: { /* set the trap flag. */ - long tmp; + case PTRACE_SINGLESTEP: /* set the trap flag. */ ret = -EIO; if ((unsigned long) data > _NSIG) break; @@ -259,7 +252,6 @@ wake_up_process(child); ret = 0; break; - } case PTRACE_DETACH: ret = ptrace_detach(child, data); Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/setup.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- setup.c 9 Apr 2002 17:03:16 -0000 1.2 +++ setup.c 10 Jun 2003 01:45:53 -0000 1.3 @@ -26,10 +26,12 @@ #include <linux/config.h> #include <linux/init.h> #include <linux/bootmem.h> +#include <linux/seq_file.h> #include <asm/segment.h> #include <asm/system.h> #include <asm/smp.h> +#include <asm/pgtable.h> #include <asm/types.h> #include <asm/svinto.h> @@ -72,10 +74,10 @@ void __init setup_arch(char **cmdline_p) { - unsigned long bootmap_size; + extern void init_etrax_debug(void); + unsigned long bootmap_size; unsigned long start_pfn, max_pfn; unsigned long memory_start; - extern void console_print_etrax(const char *b); /* register an initial console printing routine for printk's */ @@ -87,12 +89,12 @@ if(romfs_in_flash || !romfs_length) { /* if we have the romfs in flash, or if there is no rom filesystem, - * our free area starts directly after the BSS + * our free area starts directly after the BSS */ memory_start = (unsigned long) &_end; } else { /* otherwise the free area starts after the ROM filesystem */ - printk("ROM fs in RAM, size %d bytes\n", romfs_length); + printk("ROM fs in RAM, size %lu bytes\n", romfs_length); memory_start = romfs_start + romfs_length; } @@ -193,7 +195,7 @@ #define HAS_ATA 0x0020 #define HAS_USB 0x0040 #define HAS_IRQ_BUG 0x0080 -#define HAS_MMU_BUG 0x0100 +#define HAS_MMU_BUG 0x0100 static struct cpu_info { char *model; @@ -213,50 +215,27 @@ { "ETRAX 100", 8, HAS_ETHERNET100 | HAS_SCSI | HAS_ATA | HAS_IRQ_BUG }, { "ETRAX 100", 8, HAS_ETHERNET100 | HAS_SCSI | HAS_ATA }, { "ETRAX 100LX", 8, HAS_ETHERNET100 | HAS_SCSI | HAS_ATA | HAS_USB | HAS_MMU | HAS_MMU_BUG }, - { "ETRAX 100LX v2", 8, HAS_ETHERNET100 | HAS_SCSI | HAS_ATA | HAS_USB | HAS_MMU }, + { "ETRAX 100LX v2", 8, HAS_ETHERNET100 | HAS_SCSI | HAS_ATA | HAS_USB | HAS_MMU }, { "Unknown", 0, 0 } /* This entry MUST be the last */ }; -/* - * get_cpuinfo - Get information on one CPU for use by the procfs. - * - * Prints info on the next CPU into buffer. Beware, doesn't check for - * buffer overflow. Current implementation of procfs assumes that the - * resulting data is <= 1K. - * - * BUFFER is PAGE_SIZE - 1K bytes long. - * - * Args: - * buffer -- you guessed it, the data buffer - * cpu_np -- Input: next cpu to get (start at 0). Output: Updated. - * - * Returns number of bytes written to buffer. - */ -int get_cpuinfo(char *buffer, unsigned *cpu_np) +static int show_cpuinfo(struct seq_file *m, void *v) { - int revision; - struct cpu_info *info; - unsigned n; + unsigned long revision; + struct cpu_info *info; /* read the version register in the CPU and print some stuff */ revision = rdvr(); - if (revision < 0 || revision >= sizeof cpu_info/sizeof *cpu_info) { + if (revision >= sizeof cpu_info/sizeof *cpu_info) info = &cpu_info[sizeof cpu_info/sizeof *cpu_info - 1]; - } else + else info = &cpu_info[revision]; - /* No SMP at the moment, so just toggle 0/1 */ - n = *cpu_np; - *cpu_np = 1; - if (n != 0) { - return (0); - } - - return sprintf(buffer, + return seq_printf(m, "cpu\t\t: CRIS\n" - "cpu revision\t: %d\n" + "cpu revision\t: %lu\n" "cpu model\t: %s\n" "cache size\t: %d kB\n" "fpu\t\t: %s\n" @@ -283,4 +262,28 @@ (loops_per_jiffy * HZ + 500) / 500000, ((loops_per_jiffy * HZ + 500) / 5000) % 100); } + +static void *c_start(struct seq_file *m, loff_t *pos) +{ + /* We only got one CPU... */ + return *pos < 1 ? (void *)1 : NULL; +} + +static void *c_next(struct seq_file *m, void *v, loff_t *pos) +{ + ++*pos; + return NULL; +} + +static void c_stop(struct seq_file *m, void *v) +{ +} + +struct seq_operations cpuinfo_op = { + start: c_start, + next: c_next, + stop: c_stop, + show: show_cpuinfo, +}; + #endif /* CONFIG_PROC_FS */ Index: time.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/time.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- time.c 9 Apr 2002 17:03:16 -0000 1.2 +++ time.c 10 Jun 2003 01:45:53 -0000 1.3 @@ -18,6 +18,7 @@ * Linux/CRIS specific code: * * Authors: Bjorn Wesen + * Johan Adolfsson * */ @@ -61,6 +62,7 @@ static unsigned long do_slow_gettimeoffset(void) { unsigned long count; + unsigned long usec_count = 0; static unsigned long count_p = LATCH; /* for the first call after boot */ static unsigned long jiffies_p = 0; @@ -93,16 +95,20 @@ */ if( jiffies_t == jiffies_p ) { if( count > count_p ) { + /* Timer wrapped */ + count = count_p; + usec_count = 1000000/CLOCK_TICK_RATE/2; } } else jiffies_p = jiffies_t; - count_p = count; - + /* Convert timer value to usec using table lookup */ + usec_count += cris_timer0_value_us[count]; +#if 0 count = ((LATCH-1) - count) * TICK_SIZE; count = (count + LATCH/2) / LATCH; - - return count; +#endif + return usec_count; } static unsigned long (*do_gettimeoffset)(void) = do_slow_gettimeoffset; @@ -160,9 +166,8 @@ { int retval = 0; int real_seconds, real_minutes, cmos_minutes; - unsigned char save_control, save_freq_select; - printk("set_rtc_mmss(%d)\n", nowtime); + printk("set_rtc_mmss(%lu)\n", nowtime); if(!have_rtc) return 0; @@ -225,7 +230,9 @@ /* right now, starting the watchdog is the same as resetting it */ #define start_watchdog reset_watchdog +#if defined(CONFIG_ETRAX_WATCHDOG) && !defined(CONFIG_SVINTO_SIM) static int watchdog_key = 0; /* arbitrary number */ +#endif /* number of pages to consider "out of memory". it is normal that the memory * is used though, so put this really low. @@ -306,12 +313,12 @@ if ((time_status & STA_UNSYNC) == 0 && xtime.tv_sec > last_rtc_update + 660 && xtime.tv_usec > 500000 - (tick >> 1) && - xtime.tv_usec < 500000 + (tick >> 1)) + xtime.tv_usec < 500000 + (tick >> 1)) { if (set_rtc_mmss(xtime.tv_sec) == 0) last_rtc_update = xtime.tv_sec; else last_rtc_update = xtime.tv_sec - 600; - + } } #if 0 @@ -322,6 +329,7 @@ { unsigned long flags; unsigned int newjiff; + save_flags(flags); cli(); newjiff = (myjiff << 16) | (unsigned short)(-*R_TIMER01_DATA); @@ -337,7 +345,6 @@ get_cmos_time(void) { unsigned int year, mon, day, hour, min, sec; - int i; sec = CMOS_READ(RTC_SECONDS); min = CMOS_READ(RTC_MINUTES); Index: traps.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/kernel/traps.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- traps.c 9 Apr 2002 17:03:16 -0000 1.2 +++ traps.c 10 Jun 2003 01:45:53 -0000 1.3 @@ -30,6 +30,55 @@ int kstack_depth_to_print = 24; +void show_trace(unsigned long * stack) +{ + unsigned long addr, module_start, module_end; + extern char _stext, _etext; + int i; + + printk("\nCall Trace: "); + + i = 1; + module_start = VMALLOC_START; + module_end = VMALLOC_END; + + while (((long) stack & (THREAD_SIZE-1)) != 0) { + if (__get_user (addr, stack)) { + /* This message matches "failing address" marked + s390 in ksymoops, so lines containing it will + not be filtered out by ksymoops. */ + printk ("Failing address 0x%lx\n", (unsigned long)stack); + break; + } + stack++; + + /* + * If the address is either in the text segment of the + * kernel, or in the region which contains vmalloc'ed + * memory, it *may* be the address of a calling + * routine; if so, print it so that someone tracing + * down the cause of the crash will be able to figure + * out the call path that was taken. + */ + if (((addr >= (unsigned long) &_stext) && + (addr <= (unsigned long) &_etext)) || + ((addr >= module_start) && (addr <= module_end))) { + if (i && ((i % 8) == 0)) + printk("\n "); + printk("[<%08lx>] ", addr); + i++; + } + } +} + +void show_trace_task(struct task_struct *tsk) +{ + /* TODO, this is not really useful since its called from + * SysRq-T and we don't have a keyboard.. :) + */ +} + + /* * These constants are for searching for possible module text * segments. MODULE_RANGE is a guess of how much space is likely @@ -48,9 +97,8 @@ void show_stack(unsigned long *sp) { - unsigned long *stack, addr, module_start, module_end; + unsigned long *stack, addr; int i; - extern char _stext, _etext; /* * debugging aid: "show_stack(NULL);" prints a @@ -62,7 +110,7 @@ stack = sp; - printk("\nStack from %08lx:\n ", stack); + printk("\nStack from %08lx:\n ", (unsigned long)stack); for(i = 0; i < kstack_depth_to_print; i++) { if (((long) stack & (THREAD_SIZE-1)) == 0) break; @@ -72,45 +120,13 @@ /* This message matches "failing address" marked s390 in ksymoops, so lines containing it will not be filtered out by ksymoops. */ - printk ("Failing address 0x%lx\n", stack); + printk ("Failing address 0x%lx\n", (unsigned long)stack); break; } stack++; printk("%08lx ", addr); } - - printk("\nCall Trace: "); - stack = sp; - i = 1; - module_start = VMALLOC_START; - module_end = VMALLOC_END; - while (((long) stack & (THREAD_SIZE-1)) != 0) { - if (__get_user (addr, stack)) { - /* This message matches "failing address" marked - s390 in ksymoops, so lines containing it will - not be filtered out by ksymoops. */ - printk ("Failing address 0x%lx\n", stack); - break; - } - stack++; - - /* - * If the address is either in the text segment of the - * kernel, or in the region which contains vmalloc'ed - * memory, it *may* be the address of a calling - * routine; if so, print it so that someone tracing - * down the cause of the crash will be able to figure - * out the call path that was taken. - */ - if (((addr >= (unsigned long) &_stext) && - (addr <= (unsigned long) &_etext)) || - ((addr >= module_start) && (addr <= module_end))) { - if (i && ((i % 8) == 0)) - printk("\n "); - printk("[<%08lx>] ", addr); - i++; - } - } + show_trace(sp); } #if 0 @@ -148,7 +164,7 @@ regs->r8, regs->r9, regs->r10, regs->r11); printk("r12: %08lx r13: %08lx oR10: %08lx\n", regs->r12, regs->r13, regs->orig_r10); - printk("R_MMU_CAUSE: %08lx\n", *R_MMU_CAUSE); + printk("R_MMU_CAUSE: %08lx\n", (unsigned long)*R_MMU_CAUSE); printk("Process %s (pid: %d, stackpage=%08lx)\n", current->comm, current->pid, (unsigned long)current); @@ -195,25 +211,56 @@ } } +/* Called from entry.S when the watchdog has bitten + * We print out something resembling an oops dump, and if + * we have the nice doggy development flag set, we halt here + * instead of rebooting. + */ + +void +watchdog_bite_hook(struct pt_regs *regs) +{ +#ifdef CONFIG_ETRAX_WATCHDOG_NICE_DOGGY + cli(); + stop_watchdog(); + show_registers(regs); + while(1) /* nothing */; +#else + show_registers(regs); +#endif +} + +/* This is normally the 'Oops' routine */ + void die_if_kernel(const char * str, struct pt_regs * regs, long err) { + extern void reset_watchdog(void); + extern void stop_watchdog(void); + if(user_mode(regs)) return; +#ifdef CONFIG_ETRAX_WATCHDOG_NICE_DOGGY + /* This printout might take too long and trigger the + * watchdog normally. If we're in the nice doggy + * development mode, stop the watchdog during printout. + */ stop_watchdog(); +#endif printk("%s: %04lx\n", str, err & 0xffff); show_registers(regs); +#ifdef CONFIG_ETRAX_WATCHDOG_NICE_DOGGY reset_watchdog(); - +#endif do_exit(SIGSEGV); } void __init trap_init(void) { - /* Nothing needs to be done */ + /* Nothing needs to be done */ } |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:53
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/ia64/sn/fprom Modified Files: Makefile Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 10 Apr 2002 14:27:22 -0000 1.2 +++ Makefile 10 Jun 2003 01:45:57 -0000 1.3 @@ -18,10 +18,12 @@ fprom: $(OBJ) $(LD) -static -Tfprom.lds -o fprom $(OBJ) $(LIB) +comma := , + .S.o: $(CC) -D__ASSEMBLY__ $(AFLAGS) $(AFLAGS_KERNEL) -c -o $*.o $< .c.o: - $(CC) $(CFLAGS) $(CFLAGS_KERNEL) -c -o $*.o $< + $(CC) $(CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_KERNEL) -c -o $*.o $< clean: rm -f *.o fprom |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:52
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/i386 In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/i386 Modified Files: config.in defconfig vmlinux.lds Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/config.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- config.in 10 Jun 2003 01:13:14 -0000 1.3 +++ config.in 10 Jun 2003 01:45:53 -0000 1.4 @@ -37,6 +37,7 @@ Pentium-4 CONFIG_MPENTIUM4 \ K6/K6-II/K6-III CONFIG_MK6 \ Athlon/Duron/K7 CONFIG_MK7 \ + Elan CONFIG_MELAN \ Crusoe CONFIG_MCRUSOE \ Winchip-C6 CONFIG_MWINCHIPC6 \ Winchip-2 CONFIG_MWINCHIP2 \ @@ -126,6 +127,11 @@ define_bool CONFIG_X86_PGE y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y fi +if [ "$CONFIG_MELAN" = "y" ]; then + define_int CONFIG_X86_L1_CACHE_SHIFT 4 + define_bool CONFIG_X86_USE_STRING_486 y + define_bool CONFIG_X86_ALIGNMENT_16 y +fi if [ "$CONFIG_MCYRIXIII" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_bool CONFIG_X86_TSC y @@ -141,18 +147,21 @@ define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_bool CONFIG_X86_ALIGNMENT_16 y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y + define_bool CONFIG_X86_OOSTORE y fi if [ "$CONFIG_MWINCHIP2" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_bool CONFIG_X86_ALIGNMENT_16 y define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y + define_bool CONFIG_X86_OOSTORE y fi if [ "$CONFIG_MWINCHIP3D" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_bool CONFIG_X86_ALIGNMENT_16 y define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y + define_bool CONFIG_X86_OOSTORE y fi tristate 'Toshiba Laptop support' CONFIG_TOSHIBA tristate 'Dell laptop support' CONFIG_I8K Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- defconfig 10 Apr 2002 14:23:20 -0000 1.2 +++ defconfig 10 Jun 2003 01:45:54 -0000 1.3 @@ -496,6 +496,9 @@ # IrDA (infrared) support # # CONFIG_IRDA is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y # # ISDN subsystem Index: vmlinux.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/vmlinux.lds,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- vmlinux.lds 10 Apr 2002 14:23:20 -0000 1.2 +++ vmlinux.lds 10 Jun 2003 01:45:54 -0000 1.3 @@ -13,7 +13,6 @@ *(.fixup) *(.gnu.warning) } = 0x9090 - .text.lock : { *(.text.lock) } /* out-of-line lock text */ _etext = .; /* End of text section */ |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:52
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/m68k In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/m68k Modified Files: vmlinux-sun3.lds vmlinux.lds Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: vmlinux-sun3.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/vmlinux-sun3.lds,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- vmlinux-sun3.lds 10 Apr 2002 14:34:33 -0000 1.2 +++ vmlinux-sun3.lds 10 Jun 2003 01:45:58 -0000 1.3 @@ -10,7 +10,6 @@ *(.head) *(.text) *(.fixup) - *(.text.lock) /* out-of-line lock text */ *(.gnu.warning) } = 0x4e75 .kstrtab : { *(.kstrtab) } Index: vmlinux.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/vmlinux.lds,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- vmlinux.lds 10 Apr 2002 14:34:33 -0000 1.2 +++ vmlinux.lds 10 Jun 2003 01:45:58 -0000 1.3 @@ -9,7 +9,6 @@ .text : { *(.text) *(.fixup) - *(.text.lock) /* out-of-line lock text */ *(.gnu.warning) } = 0x4e75 .rodata : { *(.rodata) *(.rodata.*) } |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:52
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/cris/mm In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/cris/mm Modified Files: fault.c init.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: fault.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/mm/fault.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- fault.c 9 Apr 2002 17:03:16 -0000 1.2 +++ fault.c 10 Jun 2003 01:45:53 -0000 1.3 @@ -6,8 +6,19 @@ * Authors: Bjorn Wesen * * $Log$ - * Revision 1.2 2002/04/09 17:03:16 atp - * synch 2.4.15 commit 29 + * Revision 1.3 2003/06/10 01:45:53 airlied + * DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) + * + * Revision 1.20 2001/11/22 13:34:06 bjornw + * * Bug workaround (LX TR89): force a rerun of the whole of an interrupted + * unaligned write, because the second half of the write will be corrupted + * otherwise. Affected unaligned writes spanning not-yet mapped pages. + * * Optimization: use the wr_rd bit in R_MMU_CAUSE to know whether a miss + * was due to a read or a write (before we didn't know this until the next + * restart of the interrupted instruction, thus wasting one fault-irq) + * + * Revision 1.19 2001/11/12 19:02:10 pkj + * Fixed compiler warnings. * * Revision 1.18 2001/07/18 22:14:32 bjornw * Enable interrupts in the bulk of do_page_fault @@ -81,7 +92,14 @@ int error_code); /* debug of low-level TLB reload */ +#undef DEBUG + +#ifdef DEBUG +#define D(x) x +#else #define D(x) +#endif + /* debug of higher-level faults */ #define DPG(x) @@ -97,9 +115,12 @@ handle_mmu_bus_fault(struct pt_regs *regs) { int cause, select; +#ifdef DEBUG int index; int page_id; - int miss, we, acc, inv; + int acc, inv; +#endif + int miss, we, writeac; pmd_t *pmd; pte_t pte; int errcode; @@ -109,75 +130,83 @@ select = *R_TLB_SELECT; address = cause & PAGE_MASK; /* get faulting address */ - - D(page_id = IO_EXTRACT(R_MMU_CAUSE, page_id, cause)); - D(acc = IO_EXTRACT(R_MMU_CAUSE, acc_excp, cause)); - D(inv = IO_EXTRACT(R_MMU_CAUSE, inv_excp, cause)); - D(index = IO_EXTRACT(R_TLB_SELECT, index, select)); + +#ifdef DEBUG + page_id = IO_EXTRACT(R_MMU_CAUSE, page_id, cause); + acc = IO_EXTRACT(R_MMU_CAUSE, acc_excp, cause); + inv = IO_EXTRACT(R_MMU_CAUSE, inv_excp, cause); + index = IO_EXTRACT(R_TLB_SELECT, index, select); +#endif miss = IO_EXTRACT(R_MMU_CAUSE, miss_excp, cause); we = IO_EXTRACT(R_MMU_CAUSE, we_excp, cause); + writeac = IO_EXTRACT(R_MMU_CAUSE, wr_rd, cause); + + /* ETRAX 100LX TR89 bugfix: if the second half of an unaligned + * write causes a MMU-fault, it will not be restarted correctly. + * This could happen if a write crosses a page-boundary and the + * second page is not yet COW'ed or even loaded. The workaround + * is to clear the unaligned bit in the CPU status record, so + * that the CPU will rerun both the first and second halves of + * the instruction. This will not have any sideeffects unless + * the first half goes to any device or memory that can't be + * written twice, and which is mapped through the MMU. + * + * We only need to do this for writes. + */ + + if(writeac) + regs->csrinstr &= ~(1 << 5); - /* Note: the reason we don't set errcode's r/w flag here - * using the 'we' flag, is because the latter is only given - * if there is a write-protection exception, not given as a - * general r/w access mode flag. It is currently not possible - * to get this from the MMU (TODO: check if this is the case - * for LXv2). - * - * The page-fault code won't care, but there will be two page- - * faults instead of one for the case of a write to a non-tabled - * page (miss, then write-protection). + /* Set errcode's R/W flag according to the mode which caused the + * fault */ - errcode = 0; + errcode = writeac << 1; - D(printk("bus_fault from IRP 0x%x: addr 0x%x, miss %d, inv %d, we %d, acc %d, " - "idx %d pid %d\n", + D(printk("bus_fault from IRP 0x%lx: addr 0x%lx, miss %d, inv %d, we %d, acc %d, dx %d pid %d\n", regs->irp, address, miss, inv, we, acc, index, page_id)); /* for a miss, we need to reload the TLB entry */ - if(miss) { - + if (miss) { /* see if the pte exists at all * refer through current_pgd, dont use mm->pgd */ - + pmd = (pmd_t *)(current_pgd + pgd_index(address)); - if(pmd_none(*pmd)) + if (pmd_none(*pmd)) goto dofault; - if(pmd_bad(*pmd)) { - printk("bad pgdir entry 0x%x at 0x%x\n", *pmd, pmd); + if (pmd_bad(*pmd)) { + printk("bad pgdir entry 0x%lx at 0x%p\n", *(unsigned long*)pmd, pmd); pmd_clear(pmd); return; } pte = *pte_offset(pmd, address); - if(!pte_present(pte)) + if (!pte_present(pte)) goto dofault; - - D(printk(" found pte %x pg %x ", pte_val(pte), pte_page(pte))); - D( - { - if(pte_val(pte) & _PAGE_SILENT_WRITE) - printk("Silent-W "); - if(pte_val(pte) & _PAGE_KERNEL) - printk("Kernel "); - if(pte_val(pte) & _PAGE_SILENT_READ) - printk("Silent-R "); - if(pte_val(pte) & _PAGE_GLOBAL) - printk("Global "); - if(pte_val(pte) & _PAGE_PRESENT) - printk("Present "); - if(pte_val(pte) & _PAGE_ACCESSED) - printk("Accessed "); - if(pte_val(pte) & _PAGE_MODIFIED) - printk("Modified "); - if(pte_val(pte) & _PAGE_READ) - printk("Readable "); - if(pte_val(pte) & _PAGE_WRITE) - printk("Writeable "); - printk("\n"); - }); + +#ifdef DEBUG + printk(" found pte %lx pg %p ", pte_val(pte), pte_page(pte)); + if (pte_val(pte) & _PAGE_SILENT_WRITE) + printk("Silent-W "); + if (pte_val(pte) & _PAGE_KERNEL) + printk("Kernel "); + if (pte_val(pte) & _PAGE_SILENT_READ) + printk("Silent-R "); + if (pte_val(pte) & _PAGE_GLOBAL) + printk("Global "); + if (pte_val(pte) & _PAGE_PRESENT) + printk("Present "); + if (pte_val(pte) & _PAGE_ACCESSED) + printk("Accessed "); + if (pte_val(pte) & _PAGE_MODIFIED) + printk("Modified "); + if (pte_val(pte) & _PAGE_READ) + printk("Readable "); + if (pte_val(pte) & _PAGE_WRITE) + printk("Writeable "); + printk("\n"); +#endif /* load up the chosen TLB entry * this assumes the pte format is the same as the TLB_LO layout. @@ -192,10 +221,10 @@ } errcode = 1 | (we << 1); - + dofault: /* leave it to the MM system fault handler below */ - D(printk("do_page_fault %p errcode %d\n", address, errcode)); + D(printk("do_page_fault %lx errcode %d\n", address, errcode)); do_page_fault(address, regs, errcode); } @@ -224,20 +253,19 @@ struct mm_struct *mm; struct vm_area_struct * vma; int writeaccess; - int fault; unsigned long fixup; siginfo_t info; tsk = current; - /* - * We fault-in kernel-space virtual memory on-demand. The - * 'reference' page table is init_mm.pgd. - * - * NOTE! We MUST NOT take any locks for this case. We may - * be in an interrupt or a critical region, and should - * only copy the information from the master page table, - * nothing more. + /* + * We fault-in kernel-space virtual memory on-demand. The + * 'reference' page table is init_mm.pgd. + * + * NOTE! We MUST NOT take any locks for this case. We may + * be in an interrupt or a critical region, and should + * only copy the information from the master page table, + * nothing more. * * NOTE2: This is done so that, when updating the vmalloc * mappings we don't have to walk all processes pgdirs and @@ -246,13 +274,13 @@ * bit set so sometimes the TLB can use a lingering entry. * * This verifies that the fault happens in kernel space - * and that the fault was not a protection error (error_code & 1). - */ + * and that the fault was not a protection error (error_code & 1). + */ - if (address >= VMALLOC_START && + if (address >= VMALLOC_START && !(error_code & 1) && !user_mode(regs)) - goto vmalloc_fault; + goto vmalloc_fault; /* we can and should enable interrupts at this point */ sti(); @@ -315,28 +343,27 @@ */ switch (handle_mm_fault(mm, vma, address, writeaccess)) { - case 1: - tsk->min_flt++; - break; - case 2: - tsk->maj_flt++; - break; - case 0: - goto do_sigbus; - default: - goto out_of_memory; + case 1: + tsk->min_flt++; + break; + case 2: + tsk->maj_flt++; + break; + case 0: + goto do_sigbus; + default: + goto out_of_memory; } up_read(&mm->mmap_sem); return; - + /* * Something tried to access memory that isn't in our memory map.. * Fix it, but check if it's kernel or user first.. */ bad_area: - up_read(&mm->mmap_sem); bad_area_nosemaphore: @@ -364,10 +391,10 @@ * code) */ - if ((fixup = search_exception_table(regs->irp)) != 0) { + if ((fixup = search_exception_table(regs->irp)) != 0) { /* Adjust the instruction pointer in the stackframe */ - regs->irp = fixup; + regs->irp = fixup; /* We do not want to return by restoring the CPU-state * anymore, so switch frame-types (see ptrace.h) @@ -375,9 +402,9 @@ regs->frametype = CRIS_FRAME_NORMAL; - D(printk("doing fixup to 0x%x\n", fixup)); - return; - } + D(printk("doing fixup to 0x%lx\n", fixup)); + return; + } /* * Oops. The kernel tried to access some bad page. We'll have to @@ -400,9 +427,9 @@ */ out_of_memory: - up_read(&mm->mmap_sem); + up_read(&mm->mmap_sem); printk("VM: killing process %s\n", tsk->comm); - if(user_mode(regs)) + if (user_mode(regs)) do_exit(SIGKILL); goto no_context; @@ -410,40 +437,40 @@ up_read(&mm->mmap_sem); /* - * Send a sigbus, regardless of whether we were in kernel - * or user mode. - */ + * Send a sigbus, regardless of whether we were in kernel + * or user mode. + */ info.si_code = SIGBUS; info.si_errno = 0; info.si_code = BUS_ADRERR; info.si_addr = (void *)address; force_sig_info(SIGBUS, &info, tsk); - - /* Kernel mode? Handle exceptions or die */ - if (!user_mode(regs)) - goto no_context; - return; + + /* Kernel mode? Handle exceptions or die */ + if (!user_mode(regs)) + goto no_context; + return; vmalloc_fault: - { - /* - * Synchronize this task's top level page-table - * with the 'reference' page table. + { + /* + * Synchronize this task's top level page-table + * with the 'reference' page table. * * Use current_pgd instead of tsk->active_mm->pgd * since the latter might be unavailable if this * code is executed in a misfortunately run irq * (like inside schedule() between switch_mm and * switch_to...). - */ + */ - int offset = pgd_index(address); - pgd_t *pgd, *pgd_k; - pmd_t *pmd, *pmd_k; + int offset = pgd_index(address); + pgd_t *pgd, *pgd_k; + pmd_t *pmd, *pmd_k; pte_t *pte_k; - pgd = current_pgd + offset; - pgd_k = init_mm.pgd + offset; + pgd = (pgd_t *)current_pgd + offset; + pgd_k = init_mm.pgd + offset; /* Since we're two-level, we don't need to do both * set_pgd and set_pmd (they do the same thing). If @@ -457,13 +484,13 @@ * it exists. */ - pmd = pmd_offset(pgd, address); - pmd_k = pmd_offset(pgd_k, address); + pmd = pmd_offset(pgd, address); + pmd_k = pmd_offset(pgd_k, address); - if (!pmd_present(*pmd_k)) - goto bad_area_nosemaphore; + if (!pmd_present(*pmd_k)) + goto bad_area_nosemaphore; - set_pmd(pmd, *pmd_k); + set_pmd(pmd, *pmd_k); /* Make sure the actual PTE exists as well to * catch kernel vmalloc-area accesses to non-mapped @@ -471,10 +498,10 @@ * silently loop forever. */ - pte_k = pte_offset(pmd_k, address); - if (!pte_present(*pte_k)) - goto no_context; + pte_k = pte_offset(pmd_k, address); + if (!pte_present(*pte_k)) + goto no_context; - return; - } + return; + } } Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/mm/init.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- init.c 9 Apr 2002 17:03:16 -0000 1.2 +++ init.c 10 Jun 2003 01:45:53 -0000 1.3 @@ -7,8 +7,14 @@ * Authors: Bjorn Wesen (bj...@ax...) * * $Log$ - * Revision 1.2 2002/04/09 17:03:16 atp - * synch 2.4.15 commit 29 + * Revision 1.3 2003/06/10 01:45:53 airlied + * DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) + * + * Revision 1.31 2001/11/13 16:22:00 bjornw + * Skip calculating totalram and sharedram in si_meminfo + * + * Revision 1.30 2001/11/12 19:02:10 pkj + * Fixed compiler warnings. * * Revision 1.29 2001/07/25 16:09:50 bjornw * val->sharedram will stay 0 @@ -462,29 +468,18 @@ free_page(addr); totalram_pages++; } - printk ("Freeing unused kernel memory: %dk freed\n", + printk ("Freeing unused kernel memory: %luk freed\n", (&__init_end - &__init_begin) >> 10); } void si_meminfo(struct sysinfo *val) { - int i; - - i = max_mapnr; - val->totalram = 0; - val->sharedram = 0; - val->freeram = nr_free_pages(); - val->bufferram = atomic_read(&buffermem_pages); - while (i-- > 0) { - if (PageReserved(mem_map+i)) - continue; - val->totalram++; - if (!atomic_read(&mem_map[i].count)) - continue; - val->sharedram += atomic_read(&mem_map[i].count) - 1; - } - val->mem_unit = PAGE_SIZE; - val->totalhigh = 0; - val->freehigh = 0; + val->totalram = totalram_pages; + val->sharedram = 0; + val->freeram = nr_free_pages(); + val->bufferram = atomic_read(&buffermem_pages); + val->totalhigh = 0; + val->freehigh = 0; + val->mem_unit = PAGE_SIZE; } |
From: Dave A. <ai...@us...> - 2003-06-10 02:07:50
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/i386/kernel Modified Files: apic.c apm.c dmi_scan.c entry.S head.S i386_ksyms.c pci-irq.c pci-pc.c process.c setup.c signal.c time.c vm86.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: apic.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/apic.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- apic.c 10 Apr 2002 14:23:20 -0000 1.2 +++ apic.c 10 Jun 2003 01:45:54 -0000 1.3 @@ -56,6 +56,14 @@ maxlvt = get_maxlvt(); /* + * Masking an LVT entry on a P6 can trigger a local APIC error + * if the vector is zero. Mask LVTERR first to prevent this. + */ + if (maxlvt >= 3) { + v = ERROR_APIC_VECTOR; /* any non-zero vector will do */ + apic_write_around(APIC_LVTERR, v | APIC_LVT_MASKED); + } + /* * Careful: we have to set masks only first to deassert * any level-triggered sources. */ @@ -65,10 +73,6 @@ apic_write_around(APIC_LVT0, v | APIC_LVT_MASKED); v = apic_read(APIC_LVT1); apic_write_around(APIC_LVT1, v | APIC_LVT_MASKED); - if (maxlvt >= 3) { - v = apic_read(APIC_LVTERR); - apic_write_around(APIC_LVTERR, v | APIC_LVT_MASKED); - } if (maxlvt >= 4) { v = apic_read(APIC_LVTPC); apic_write_around(APIC_LVTPC, v | APIC_LVT_MASKED); @@ -84,6 +88,12 @@ apic_write_around(APIC_LVTERR, APIC_LVT_MASKED); if (maxlvt >= 4) apic_write_around(APIC_LVTPC, APIC_LVT_MASKED); + v = GET_APIC_VERSION(apic_read(APIC_LVR)); + if (APIC_INTEGRATED(v)) { /* !82489DX */ + if (maxlvt > 3) + apic_write(APIC_ESR, 0); + apic_read(APIC_ESR); + } } void __init connect_bsp_APIC(void) @@ -480,6 +490,7 @@ l &= ~MSR_IA32_APICBASE_BASE; l |= MSR_IA32_APICBASE_ENABLE | APIC_DEFAULT_PHYS_BASE; wrmsr(MSR_IA32_APICBASE, l, h); + apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED); apic_write(APIC_ID, apic_pm_state.apic_id); apic_write(APIC_DFR, apic_pm_state.apic_dfr); apic_write(APIC_LDR, apic_pm_state.apic_ldr); @@ -487,15 +498,15 @@ apic_write(APIC_SPIV, apic_pm_state.apic_spiv); apic_write(APIC_LVT0, apic_pm_state.apic_lvt0); apic_write(APIC_LVT1, apic_pm_state.apic_lvt1); + apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc); + apic_write(APIC_LVTT, apic_pm_state.apic_lvtt); + apic_write(APIC_TDCR, apic_pm_state.apic_tdcr); + apic_write(APIC_TMICT, apic_pm_state.apic_tmict); apic_write(APIC_ESR, 0); apic_read(APIC_ESR); apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr); apic_write(APIC_ESR, 0); apic_read(APIC_ESR); - apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc); - apic_write(APIC_LVTT, apic_pm_state.apic_lvtt); - apic_write(APIC_TDCR, apic_pm_state.apic_tdcr); - apic_write(APIC_TMICT, apic_pm_state.apic_tmict); __restore_flags(flags); if (apic_pm_state.perfctr_pmdev) pm_send(apic_pm_state.perfctr_pmdev, PM_RESUME, data); Index: apm.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/apm.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- apm.c 10 Apr 2002 14:23:20 -0000 1.2 +++ apm.c 10 Jun 2003 01:45:55 -0000 1.3 @@ -39,6 +39,7 @@ * Feb 2000, Version 1.13 * Nov 2000, Version 1.14 * Oct 2001, Version 1.15 + * Jan 2002, Version 1.16 * * History: * 0.6b: first version in official kernel, Linux 1.3.46 @@ -85,7 +86,7 @@ * change APM_NOINTS to CONFIG_APM_ALLOW_INTS * remove dependency on CONFIG_PROC_FS * Stephen Rothwell - * 1.9: Fix small typo. <la...@il...> + * 1.9: Fix small typo. <la...@wo...> * Try to cope with BIOS's that need to have all display * devices blanked and not just the first one. * Ross Paterson <ro...@so...> @@ -164,8 +165,18 @@ * If an APM idle fails log it and idle sensibly * 1.15: Don't queue events to clients who open the device O_WRONLY. * Don't expect replies from clients who open the device O_RDONLY. - * (Idea from Thomas Hood <jdthood at yahoo.co.uk>) - * Minor waitqueue cleanups.(John Fremlin <ch...@ba...>) + * (Idea from Thomas Hood <jd...@ma...>) + * Minor waitqueue cleanups. (John Fremlin <ch...@ba...>) + * 1.16: Fix idle calling. (Andreas Steinmetz <as...@do...> et al.) + * Notify listeners of standby or suspend events before notifying + * drivers. Return EBUSY to ioctl() if suspend is rejected. + * (Russell King <rm...@ar...> and Thomas Hood) + * Ignore first resume after we generate our own resume event + * after a suspend (Thomas Hood <jd...@ma...>) + * Daemonize now gets rid of our controlling terminal (sfr). + * CONFIG_APM_CPU_IDLE now just affects the default value of + * idle_threshold (sfr). + * Change name of kernel apm daemon (as it no longer idles) (sfr). * * APM 1.1 Reference: * @@ -238,6 +249,12 @@ * [no-]power[-_]off power off on shutdown * bounce[-_]interval=<n> number of ticks to ignore suspend * bounces + * idle[-_]threshold=<n> System idle percentage above which to + * make APM BIOS idle calls. Set it to + * 100 to disable. + * idle[-_]period=<n> Period (in 1/100s of a second) over + * which the idle percentage is + * calculated. */ /* KNOWN PROBLEM MACHINES: @@ -341,15 +358,26 @@ #define APM_BIOS_MAGIC 0x4101 /* + * idle percentage above which bios idle calls are done + */ +#ifdef CONFIG_APM_CPU_IDLE +#define DEFAULT_IDLE_THRESHOLD 95 +#else +#define DEFAULT_IDLE_THRESHOLD 100 +#endif +#define DEFAULT_IDLE_PERIOD (100 / 3) + +/* * Local variables */ static struct { unsigned long offset; unsigned short segment; } apm_bios_entry; -#ifdef CONFIG_APM_CPU_IDLE static int clock_slowed; -#endif +static int idle_threshold = DEFAULT_IDLE_THRESHOLD; +static int idle_period = DEFAULT_IDLE_PERIOD; +static int set_pm_idle; static int suspends_pending; static int standbys_pending; static int waiting_for_resume; @@ -388,7 +416,7 @@ static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); static struct apm_user * user_list; -static char driver_version[] = "1.15"; /* no spaces */ +static char driver_version[] = "1.16"; /* no spaces */ /* * APM event names taken from the APM 1.2 specification. These are @@ -684,8 +712,6 @@ return set_power_state(APM_DEVICE_ALL, state); } -#ifdef CONFIG_APM_CPU_IDLE - /** * apm_do_idle - perform power saving * @@ -735,63 +761,89 @@ } } -#if 0 -extern int hlt_counter; - /* - * If no process has been interested in this - * CPU for some time, we want to wake up the - * power management thread - we probably want + * If no process has really been interested in + * the CPU for some time, we want to call BIOS + * power management - we probably want * to conserve power. */ -#define HARD_IDLE_TIMEOUT (HZ/3) +#define IDLE_CALC_LIMIT (HZ * 100) +#define IDLE_LEAKY_MAX 16 -/* This should wake up kapmd and ask it to slow the CPU */ -#define powermanagement_idle() do { } while (0) +static void (*sys_idle)(void); + +extern void default_idle(void); /** * apm_cpu_idle - cpu idling for APM capable Linux * * This is the idling function the kernel executes when APM is available. It - * tries to save processor time directly by using hlt instructions. A - * separate apm thread tries to do the BIOS power management. - * - * N.B. This is curently not used for kernels 2.4.x. + * tries to do BIOS powermanagement based on the average system idle time. + * Furthermore it calls the system default idle routine. */ static void apm_cpu_idle(void) { - unsigned int start_idle; + static int use_apm_idle = 0; + static unsigned int last_jiffies = 0; + static unsigned int last_stime = 0; + + int apm_is_idle = 0; + unsigned int jiffies_since_last_check = jiffies - last_jiffies; + unsigned int t1; + + +recalc: + if (jiffies_since_last_check > IDLE_CALC_LIMIT) { + use_apm_idle = 0; + last_jiffies = jiffies; + last_stime = current->times.tms_stime; + } else if (jiffies_since_last_check > idle_period) { + unsigned int idle_percentage; + + idle_percentage = current->times.tms_stime - last_stime; + idle_percentage *= 100; + idle_percentage /= jiffies_since_last_check; + use_apm_idle = (idle_percentage > idle_threshold); + last_jiffies = jiffies; + last_stime = current->times.tms_stime; + } + + t1 = IDLE_LEAKY_MAX; + + while (!current->need_resched) { + if (use_apm_idle) { + unsigned int t; - start_idle = jiffies; - while (1) { - if (!current->need_resched) { - if (jiffies - start_idle < HARD_IDLE_TIMEOUT) { - if (!current_cpu_data.hlt_works_ok) - continue; - if (hlt_counter) + t = jiffies; + switch (apm_do_idle()) { + case 0: apm_is_idle = 1; + if (t != jiffies) { + if (t1) { + t1 = IDLE_LEAKY_MAX; + continue; + } + } else if (t1) { + t1--; continue; - __cli(); - if (!current->need_resched) - safe_halt(); - else - __sti(); - continue; + } + break; + case 1: apm_is_idle = 1; + break; } - - /* - * Ok, do some power management - we've been idle for too long - */ - powermanagement_idle(); } - - schedule(); - check_pgt_cache(); - start_idle = jiffies; + if (sys_idle) + sys_idle(); + else + default_idle(); + jiffies_since_last_check = jiffies - last_jiffies; + if (jiffies_since_last_check > idle_period) + goto recalc; } + + if (apm_is_idle) + apm_do_busy(); } -#endif -#endif #ifdef CONFIG_SMP static int apm_magic(void * unused) @@ -1133,57 +1185,42 @@ #endif } -static int send_event(apm_event_t event) +static int suspend(int vetoable) { - switch (event) { - case APM_SYS_SUSPEND: - case APM_CRITICAL_SUSPEND: - case APM_USER_SUSPEND: - /* map all suspends to ACPI D3 */ - if (pm_send_all(PM_SUSPEND, (void *)3)) { - if (event == APM_CRITICAL_SUSPEND) { - printk(KERN_CRIT - "apm: Critical suspend was vetoed, " - "expect armageddon\n" ); - return 0; - } + int err; + struct apm_user *as; + + if (pm_send_all(PM_SUSPEND, (void *)3)) { + /* Vetoed */ + if (vetoable) { if (apm_info.connection_version > 0x100) apm_set_power_state(APM_STATE_REJECT); - return 0; + err = -EBUSY; + waiting_for_resume = 0; + printk(KERN_WARNING "apm: suspend was vetoed.\n"); + goto out; } - break; - case APM_NORMAL_RESUME: - case APM_CRITICAL_RESUME: - /* map all resumes to ACPI D0 */ - (void) pm_send_all(PM_RESUME, (void *)0); - break; + printk(KERN_CRIT "apm: suspend was vetoed, but suspending anyway.\n"); } - - return 1; -} - -static int suspend(void) -{ - int err; - struct apm_user *as; - get_time_diff(); cli(); err = apm_set_power_state(APM_STATE_SUSPEND); reinit_timer(); set_time(); + sti(); if (err == APM_NO_ERROR) err = APM_SUCCESS; if (err != APM_SUCCESS) apm_error("suspend", err); - send_event(APM_NORMAL_RESUME); - sti(); + err = (err == APM_SUCCESS) ? 0 : -EIO; + pm_send_all(PM_RESUME, (void *)0); queue_event(APM_NORMAL_RESUME, NULL); + ignore_normal_resume = 1; + out: for (as = user_list; as != NULL; as = as->next) { as->suspend_wait = 0; - as->suspend_result = ((err == APM_SUCCESS) ? 0 : -EIO); + as->suspend_result = err; } - ignore_normal_resume = 1; wake_up_interruptible(&apm_suspend_waitqueue); return err; } @@ -1192,6 +1229,7 @@ { int err; + /* If needed, notify drivers here */ get_time_diff(); err = apm_set_power_state(APM_STATE_STANDBY); if ((err != APM_SUCCESS) && (err != APM_NO_ERROR)) @@ -1235,17 +1273,13 @@ if (ignore_bounce && ((jiffies - last_resume) > bounce_interval)) ignore_bounce = 0; - if (ignore_normal_resume && (event != APM_NORMAL_RESUME)) - ignore_normal_resume = 0; switch (event) { case APM_SYS_STANDBY: case APM_USER_STANDBY: - if (send_event(event)) { - queue_event(event, NULL); - if (standbys_pending <= 0) - standby(); - } + queue_event(event, NULL); + if (standbys_pending <= 0) + standby(); break; case APM_USER_SUSPEND: @@ -1270,12 +1304,10 @@ */ if (waiting_for_resume) return; - if (send_event(event)) { - queue_event(event, NULL); - waiting_for_resume = 1; - if (suspends_pending <= 0) - (void) suspend(); - } + waiting_for_resume = 1; + queue_event(event, NULL); + if (suspends_pending <= 0) + (void) suspend(1); break; case APM_NORMAL_RESUME: @@ -1287,16 +1319,17 @@ if ((event != APM_NORMAL_RESUME) || (ignore_normal_resume == 0)) { set_time(); - send_event(event); + pm_send_all(PM_RESUME, (void *)0); queue_event(event, NULL); } + ignore_normal_resume = 0; break; case APM_CAPABILITY_CHANGE: case APM_LOW_BATTERY: case APM_POWER_STATUS_CHANGE: - send_event(event); queue_event(event, NULL); + /* If needed, notify drivers here */ break; case APM_UPDATE_TIME: @@ -1304,12 +1337,10 @@ break; case APM_CRITICAL_SUSPEND: - send_event(event); /* - * We can only hope it worked - we are not allowed - * to reject a critical suspend. + * We are not allowed to reject a critical suspend. */ - (void) suspend(); + (void) suspend(0); break; } } @@ -1337,63 +1368,24 @@ /* * This is the APM thread main loop. - * - * Check whether we're the only running process to - * decide if we should just power down. - * */ -#define system_idle() (nr_running == 1) static void apm_mainloop(void) { - int timeout = HZ; DECLARE_WAITQUEUE(wait, current); add_wait_queue(&apm_waitqueue, &wait); set_current_state(TASK_INTERRUPTIBLE); for (;;) { - /* Nothing to do, just sleep for the timeout */ - timeout = 2 * timeout; - if (timeout > APM_CHECK_TIMEOUT) - timeout = APM_CHECK_TIMEOUT; - schedule_timeout(timeout); + schedule_timeout(APM_CHECK_TIMEOUT); if (exit_kapmd) break; - /* * Ok, check all events, check for idle (and mark us sleeping * so as not to count towards the load average).. */ set_current_state(TASK_INTERRUPTIBLE); apm_event_handler(); -#ifdef CONFIG_APM_CPU_IDLE - if (!system_idle()) - continue; - - /* - * If we can idle... - */ - if (apm_do_idle() != -1) { - unsigned long start = jiffies; - while ((!exit_kapmd) && system_idle()) { - if (apm_do_idle()) { - set_current_state(TASK_INTERRUPTIBLE); - /* APM needs us to snooze .. either - the BIOS call failed (-1) or it - slowed the clock (1). We sleep - until it talks to us again */ - schedule_timeout(1); - } - if ((jiffies - start) > APM_CHECK_TIMEOUT) { - apm_event_handler(); - start = jiffies; - } - } - apm_do_busy(); - apm_event_handler(); - timeout = 1; - } -#endif } remove_wait_queue(&apm_waitqueue, &wait); } @@ -1479,9 +1471,7 @@ as->standbys_read--; as->standbys_pending--; standbys_pending--; - } else if (!send_event(APM_USER_STANDBY)) - return -EAGAIN; - else + } else queue_event(APM_USER_STANDBY, as); if (standbys_pending <= 0) standby(); @@ -1491,13 +1481,10 @@ as->suspends_read--; as->suspends_pending--; suspends_pending--; - } else if (!send_event(APM_USER_SUSPEND)) - return -EAGAIN; - else + } else queue_event(APM_USER_SUSPEND, as); if (suspends_pending <= 0) { - if (suspend() != APM_SUCCESS) - return -EIO; + return suspend(1); } else { as->suspend_wait = 1; wait_event_interruptible(apm_suspend_waitqueue, @@ -1528,7 +1515,7 @@ if (as->suspends_pending > 0) { suspends_pending -= as->suspends_pending; if (suspends_pending <= 0) - (void) suspend(); + (void) suspend(1); } if (user_list == as) user_list = as->next; @@ -1676,9 +1663,8 @@ daemonize(); - strcpy(current->comm, "kapm-idled"); + strcpy(current->comm, "kapmd"); sigfillset(¤t->blocked); - current->tty = NULL; /* get rid of controlling tty */ if (apm_info.connection_version == 0) { apm_info.connection_version = apm_info.bios.version; @@ -1797,7 +1783,14 @@ if ((strncmp(str, "bounce-interval=", 16) == 0) || (strncmp(str, "bounce_interval=", 16) == 0)) bounce_interval = simple_strtol(str + 16, NULL, 0); - invert = (strncmp(str, "no-", 3) == 0); + if ((strncmp(str, "idle-threshold=", 15) == 0) || + (strncmp(str, "idle_threshold=", 15) == 0)) + idle_threshold = simple_strtol(str + 15, NULL, 0); + if ((strncmp(str, "idle-period=", 12) == 0) || + (strncmp(str, "idle_period=", 12) == 0)) + idle_threshold = simple_strtol(str + 15, NULL, 0); + invert = (strncmp(str, "no-", 3) == 0) || + (strncmp(str, "no_", 3) == 0); if (invert) str += 3; if (strncmp(str, "debug", 5) == 0) @@ -1968,6 +1961,14 @@ misc_register(&apm_device); + if (HZ != 100) + idle_period = (idle_period * HZ) / 100; + if (idle_threshold < 100) { + sys_idle = pm_idle; + pm_idle = apm_cpu_idle; + set_pm_idle = 1; + } + return 0; } @@ -1975,6 +1976,8 @@ { int error; + if (set_pm_idle) + pm_idle = sys_idle; if (((apm_info.bios.flags & APM_BIOS_DISENGAGED) == 0) && (apm_info.connection_version > 0x0100)) { error = apm_engage_power_management(APM_DEVICE_ALL, 0); @@ -2012,5 +2015,11 @@ MODULE_PARM(realmode_power_off, "i"); MODULE_PARM_DESC(realmode_power_off, "Switch to real mode before powering off"); +MODULE_PARM(idle_threshold, "i"); +MODULE_PARM_DESC(idle_threshold, + "System idle percentage above which to make APM BIOS idle calls"); +MODULE_PARM(idle_period, "i"); +MODULE_PARM_DESC(idle_period, + "Period (in sec/100) over which to caculate the idle percentage"); EXPORT_NO_SYMBOLS; Index: dmi_scan.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/dmi_scan.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- dmi_scan.c 10 Jun 2003 01:13:14 -0000 1.3 +++ dmi_scan.c 10 Jun 2003 01:45:55 -0000 1.4 @@ -467,6 +467,11 @@ MATCH(DMI_PRODUCT_NAME, "PowerEdge 300/"), NO_MATCH, NO_MATCH } }, + { set_bios_reboot, "Dell PowerEdge 2400", { /* Handle problems with rebooting on Dell 300/800's */ + MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400"), + NO_MATCH, NO_MATCH + } }, { set_apm_ints, "Dell Inspiron", { /* Allow interrupts during suspend on Dell Inspiron laptops*/ MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"), Index: entry.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/entry.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- entry.S 10 Apr 2002 14:23:20 -0000 1.2 +++ entry.S 10 Jun 2003 01:45:55 -0000 1.3 @@ -622,6 +622,18 @@ .long SYMBOL_NAME(sys_ni_syscall) /* Reserved for Security */ .long SYMBOL_NAME(sys_gettid) .long SYMBOL_NAME(sys_readahead) /* 225 */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for setxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for lsetxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for fsetxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for getxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* 230 reserved for lgetxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for fgetxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for listxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for llistxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for flistxattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* 235 reserved for removexattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for lremovexattr */ + .long SYMBOL_NAME(sys_ni_syscall) /* reserved for fremovexattr */ .rept NR_syscalls-(.-sys_call_table)/4 .long SYMBOL_NAME(sys_ni_syscall) Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/head.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- head.S 10 Apr 2002 14:23:20 -0000 1.2 +++ head.S 10 Jun 2003 01:45:55 -0000 1.3 @@ -446,12 +446,3 @@ .quad 0x00009a0000000000 /* 0x50 APM CS 16 code (16 bit) */ .quad 0x0040920000000000 /* 0x58 APM DS data */ .fill NR_CPUS*4,8,0 /* space for TSS's and LDT's */ - -/* - * This is to aid debugging, the various locking macros will be putting - * code fragments here. When an oops occurs we'd rather know that it's - * inside the .text.lock section rather than as some offset from whatever - * function happens to be last in the .text segment. - */ -.section .text.lock -ENTRY(stext_lock) Index: i386_ksyms.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/i386_ksyms.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- i386_ksyms.c 10 Apr 2002 14:23:20 -0000 1.2 +++ i386_ksyms.c 10 Jun 2003 01:45:55 -0000 1.3 @@ -35,6 +35,8 @@ #if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE) extern void machine_real_restart(unsigned char *, int); EXPORT_SYMBOL(machine_real_restart); +extern void default_idle(void); +EXPORT_SYMBOL(default_idle); #endif #ifdef CONFIG_SMP @@ -93,7 +95,6 @@ EXPORT_SYMBOL(strtok); EXPORT_SYMBOL(strpbrk); -EXPORT_SYMBOL(simple_strtol); EXPORT_SYMBOL(strstr); EXPORT_SYMBOL(strncpy_from_user); Index: pci-irq.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/pci-irq.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- pci-irq.c 10 Apr 2002 14:23:21 -0000 1.2 +++ pci-irq.c 10 Jun 2003 01:45:55 -0000 1.3 @@ -225,12 +225,12 @@ */ static int pirq_cyrix_get(struct pci_dev *router, struct pci_dev *dev, int pirq) { - return read_config_nybble(router, 0x5C, pirq-1); + return read_config_nybble(router, 0x5C, (pirq-1)^1); } static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) { - write_config_nybble(router, 0x5C, pirq-1, irq); + write_config_nybble(router, 0x5C, (pirq-1)^1, irq); return 1; } Index: pci-pc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/pci-pc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- pci-pc.c 10 Jun 2003 01:13:14 -0000 1.3 +++ pci-pc.c 10 Jun 2003 01:45:56 -0000 1.4 @@ -1109,22 +1109,29 @@ } /* - * Nobody seems to know what this does. Damn. + * Addresses issues with problems in the memory write queue timer in + * certain VIA Northbridges. This bugfix is per VIA's specifications. * - * But it does seem to fix some unspecified problem - * with 'movntq' copies on Athlons. - * - * VIA 8363 chipset: - * - bit 7 at offset 0x55: Debug (RW) + * VIA 8363,8622,8361 Northbridges: + * - bits 5, 6, 7 at offset 0x55 need to be turned off + * VIA 8367 (KT266x) Northbridges: + * - bits 5, 6, 7 at offset 0x95 need to be turned off */ -static void __init pci_fixup_via_athlon_bug(struct pci_dev *d) +static void __init pci_fixup_via_northbridge_bug(struct pci_dev *d) { u8 v; - pci_read_config_byte(d, 0x55, &v); - if (v & 0x80) { - printk("Trying to stomp on Athlon bug...\n"); - v &= 0x7f; /* clear bit 55.7 */ - pci_write_config_byte(d, 0x55, v); + int where = 0x55; + + if (d->device == PCI_DEVICE_ID_VIA_8367_0) { + where = 0x95; /* the memory write queue timer register is + different for the kt266x's: 0x95 not 0x55 */ + } + + pci_read_config_byte(d, where, &v); + if (v & 0xe0) { + printk("Disabling VIA memory write queue: [%02x] %02x->%02x\n", where, v, v & 0x1f); + v &= 0x1f; /* clear bits 5, 6, 7 */ + pci_write_config_byte(d, where, v); } } @@ -1137,7 +1144,10 @@ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5597, pci_fixup_latency }, { PCI_FIXUP_HEADER, PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5598, pci_fixup_latency }, { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, pci_fixup_piix4_acpi }, - { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8363_0, pci_fixup_via_athlon_bug }, + { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8363_0, pci_fixup_via_northbridge_bug }, + { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8622, pci_fixup_via_northbridge_bug }, + { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8361, pci_fixup_via_northbridge_bug }, + { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8367_0, pci_fixup_via_northbridge_bug }, { 0 } }; Index: process.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/process.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- process.c 10 Apr 2002 14:23:21 -0000 1.2 +++ process.c 10 Jun 2003 01:45:56 -0000 1.3 @@ -41,6 +41,7 @@ #include <asm/ldt.h> #include <asm/processor.h> #include <asm/i387.h> +#include <asm/irq.h> #include <asm/desc.h> #include <asm/mmu_context.h> #ifdef CONFIG_MATH_EMULATION @@ -77,7 +78,7 @@ * We use this if we don't have any better * idle routine.. */ -static void default_idle(void) +void default_idle(void) { if (current_cpu_data.hlt_works_ok && !hlt_counter) { __cli(); @@ -542,6 +543,8 @@ BUG(); } } + + release_x86_irqs(dead_task); } /* Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/setup.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- setup.c 10 Jun 2003 01:13:14 -0000 1.3 +++ setup.c 10 Jun 2003 01:45:56 -0000 1.4 @@ -827,10 +827,8 @@ #define PFN_PHYS(x) ((x) << PAGE_SHIFT) /* - * 128MB for vmalloc and initrd + * Reserved space for vmalloc and iomap - defined in asm/page.h */ -#define VMALLOC_RESERVE (unsigned long)(128 << 20) -#define MAXMEM (unsigned long)(-PAGE_OFFSET-VMALLOC_RESERVE) #define MAXMEM_PFN PFN_DOWN(MAXMEM) #define MAX_NONPAE_PFN (1 << 20) @@ -2234,7 +2232,7 @@ */ #define NR_SIBLINGS 2 if (smp_num_siblings != NR_SIBLINGS) { - printk(KERN_WARNING "CPU: Unsuppored number of the siblings %d", smp_num_siblings); + printk(KERN_WARNING "CPU: Unsupported number of the siblings %d", smp_num_siblings); smp_num_siblings = 1; goto too_many_siblings; } Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/signal.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- signal.c 10 Apr 2002 14:23:21 -0000 1.2 +++ signal.c 10 Jun 2003 01:45:56 -0000 1.3 @@ -28,7 +28,7 @@ #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) -asmlinkage int FASTCALL(do_signal(struct pt_regs *regs, sigset_t *oldset)); +int FASTCALL(do_signal(struct pt_regs *regs, sigset_t *oldset)); int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from) { Index: time.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/time.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- time.c 10 Apr 2002 14:23:21 -0000 1.2 +++ time.c 10 Jun 2003 01:45:56 -0000 1.3 @@ -681,7 +681,6 @@ #ifndef do_gettimeoffset do_gettimeoffset = do_fast_gettimeoffset; #endif - do_get_fast_time = do_gettimeofday; /* report CPU clock rate in Hz. * The formula is (10^6 * 2^32) / (2^32 * 1 / (clocks/us)) = Index: vm86.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/kernel/vm86.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- vm86.c 10 Apr 2002 14:23:21 -0000 1.2 +++ vm86.c 10 Jun 2003 01:45:56 -0000 1.3 @@ -16,6 +16,7 @@ #include <asm/uaccess.h> #include <asm/pgalloc.h> #include <asm/io.h> +#include <asm/irq.h> /* * Known problems: @@ -62,7 +63,7 @@ ( (unsigned)( & (((struct kernel_vm86_regs *)0)->VM86_REGS_PART2) ) ) #define VM86_REGS_SIZE2 (sizeof(struct kernel_vm86_regs) - VM86_REGS_SIZE1) -asmlinkage struct pt_regs * FASTCALL(save_v86_state(struct kernel_vm86_regs * regs)); +struct pt_regs * FASTCALL(save_v86_state(struct kernel_vm86_regs * regs)); struct pt_regs * save_v86_state(struct kernel_vm86_regs * regs) { struct tss_struct *tss; @@ -610,6 +611,14 @@ } read_unlock(&tasklist_lock); return ret; +} + +void release_x86_irqs(struct task_struct *task) +{ + int i; + for (i=3; i<16; i++) + if (vm86_irqs[i].tsk == task) + free_vm86_irq(i); } static inline void handle_irq_zombies(void) |
From: Dave A. <ai...@us...> - 2003-06-10 02:06:54
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/cris/boot/compressed In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/cris/boot/compressed Modified Files: Makefile Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/boot/compressed/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 9 Apr 2002 17:03:15 -0000 1.2 +++ Makefile 10 Jun 2003 01:45:50 -0000 1.3 @@ -4,6 +4,13 @@ # create a compressed vmlinux image from the original vmlinux files and romfs # +ifndef TOPDIR +TOPDIR = ../../../.. +HPATH = $(TOPDIR)/include +export HPATH +endif + + CC = gcc-cris -melf -I $(TOPDIR)/include CFLAGS = -O2 LD = ld-cris @@ -37,4 +44,10 @@ clean: rm -f piggy.img vmlinuz vmlinuz.o + +depend: + $(CC) -M *.S *.c > .depend + +-include .depend + |
From: Dave A. <ai...@us...> - 2003-06-10 02:06:53
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/cris/boot In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/cris/boot Modified Files: Makefile Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/cris/boot/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 25 Feb 2001 23:15:23 -0000 1.1.1.1 +++ Makefile 10 Jun 2003 01:45:49 -0000 1.2 @@ -8,6 +8,8 @@ @$(MAKE) -C compressed vmlinuz dep: + @$(MAKE) -C compressed depend + @$(MAKE) -C rescue depend clean: rm -f zImage tools/build compressed/vmlinux.out |
From: Dave A. <ai...@us...> - 2003-06-10 02:06:31
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/sound In directory sc8-pr-cvs1:/tmp/cvs-serv23180/Documentation/sound Modified Files: AD1816 AudioExcelDSP16 NEWS Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: AD1816 =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/sound/AD1816,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- AD1816 14 Jan 2001 20:04:50 -0000 1.1.1.1 +++ AD1816 10 Jun 2003 01:45:47 -0000 1.2 @@ -80,5 +80,5 @@ te...@rb... Thorsten Knabe <te...@rb...> -Christoph Hellwig <hc...@ca...> +Christoph Hellwig <hc...@in...> Last modified: 2000/09/20 Index: AudioExcelDSP16 =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/sound/AudioExcelDSP16,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- AudioExcelDSP16 14 Jan 2001 20:04:49 -0000 1.1.1.1 +++ AudioExcelDSP16 10 Jun 2003 01:45:47 -0000 1.2 @@ -2,7 +2,7 @@ ------ Informations about Audio Excel DSP 16 driver can be found in the source -file lowlevel/aedsp16.c +file aedsp16.c Please, read the head of the source before using it. It contain useful informations. Index: NEWS =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/sound/NEWS,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- NEWS 14 Jan 2001 20:05:14 -0000 1.1.1.1 +++ NEWS 10 Jun 2003 01:45:47 -0000 1.2 @@ -1,6 +1,6 @@ Linux 2.4 Sound Changes 2000-September-25 -Christoph Hellwig, <hc...@ca...> +Christoph Hellwig, <hc...@in...> @@ -9,9 +9,6 @@ The Linux 2.4 Kernel does have reliable in-kernel isapnp support. Some drivers (sb.o, ad1816.o awe_wave.o) do now support automatically detecting and configuring isapnp devices. -If you have a not yet supported isapnp soundcard, mail me the content -of '/proc/isapnp' on your system and some information about your card -and its driver(s) so I can try to get isapnp working for it. |
From: Dave A. <ai...@us...> - 2003-06-10 02:06:31
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/s390 In directory sc8-pr-cvs1:/tmp/cvs-serv23180/Documentation/s390 Modified Files: Debugging390.txt Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Debugging390.txt =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/s390/Debugging390.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Debugging390.txt 9 Apr 2002 16:55:46 -0000 1.1 +++ Debugging390.txt 10 Jun 2003 01:45:46 -0000 1.2 @@ -237,9 +237,10 @@ On 390 our limitations & strengths make us slightly different. -For backward compatibility we are only allowed use 31 bits (2GB) -of our 32 bit addresses,however, we use entirely separate address -spaces for the user & kernel. +For backward compatibility ( because of the psw address hi bit which +indicates whether we are in 31 or 64 bit mode ) we are only allowed +use 31 bits (2GB) of our 32 bit addresses. However, +we use entirely separate address spaces for the user & kernel. This means we can support 2GB of non Extended RAM on s/390, & more with the Extended memory managment swap device & @@ -2123,6 +2124,12 @@ now do p/x (*(**$sp+56))&0x7fffffff & so on. + +Another good trick to look at addresses on the stack if you've somehow lost +the backchain is. +x/500xa $sp +This displays anything the name of any known functions above the stack pointer +for 500 bytes. Disassembling instructions without debug info --------------------------------------------- |
From: Dave A. <ai...@us...> - 2003-06-10 02:05:49
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/configs In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/ppc/configs Modified Files: common_defconfig gemini_defconfig ibmchrp_defconfig power3_defconfig Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: common_defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/configs/common_defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- common_defconfig 10 Apr 2002 15:04:04 -0000 1.2 +++ common_defconfig 10 Jun 2003 01:46:02 -0000 1.3 @@ -4,6 +4,7 @@ # CONFIG_UID16 is not set # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_HAVE_DEC_LOCK=y # # Code maturity level options @@ -119,8 +120,6 @@ # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set -CONFIG_NETLINK=y -# CONFIG_RTNETLINK is not set # CONFIG_NETLINK_DEV is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -133,6 +132,7 @@ # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set # CONFIG_INET_ECN is not set CONFIG_SYN_COOKIES=y @@ -343,15 +343,11 @@ # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_NCR53C7xx is not set -CONFIG_SCSI_NCR53C8XX=y -CONFIG_SCSI_SYM53C8XX=y -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 -# CONFIG_SCSI_NCR53C8XX_PROFILE is not set -# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set -# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set -# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set # CONFIG_SCSI_PCI2220I is not set @@ -388,7 +384,9 @@ # # Appletalk devices # -# CONFIG_APPLETALK is not set +# CONFIG_LTPC is not set +# CONFIG_COPS is not set +# CONFIG_IPDDP is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set @@ -443,6 +441,7 @@ # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set # CONFIG_VIA_RHINE is not set +# CONFIG_VIA_RHINE_MMIO is not set # CONFIG_WINBOND_840 is not set # CONFIG_NET_POCKET is not set @@ -544,6 +543,7 @@ CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y # CONFIG_FB_MATROX_G100 is not set +# CONFIG_FB_MATROX_I2C is not set # CONFIG_FB_MATROX_G450 is not set # CONFIG_FB_MATROX_MULTIHEAD is not set CONFIG_FB_ATY=y @@ -597,6 +597,7 @@ CONFIG_MAC_ADBKEYCODES=y CONFIG_MAC_EMUMOUSEBTN=y CONFIG_MAC_HID=y +# CONFIG_ANSLCD is not set # # Character devices @@ -612,7 +613,12 @@ # # I2C support # -# CONFIG_I2C is not set +CONFIG_I2C=m +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +CONFIG_I2C_KEYWEST=m +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_PROC=m # # Mice @@ -693,11 +699,15 @@ # CONFIG_AUTOFS4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set CONFIG_HFS_FS=m # CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m # CONFIG_UMSDOS_FS is not set @@ -710,6 +720,7 @@ # CONFIG_RAMFS is not set CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set # CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set @@ -734,6 +745,7 @@ # Network File Systems # # CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_ROOT_NFS is not set @@ -751,6 +763,8 @@ # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set # # Partition Types @@ -818,8 +832,10 @@ # Sound # CONFIG_SOUND=m -CONFIG_DMASOUND_AWACS=m +CONFIG_DMASOUND_PMAC=m CONFIG_DMASOUND=m +CONFIG_I2C=m +CONFIG_I2C_KEYWEST=m # CONFIG_SOUND_BT878 is not set # CONFIG_SOUND_CMPCI is not set # CONFIG_SOUND_EMU10K1 is not set @@ -854,7 +870,6 @@ CONFIG_USB_DEVICEFS=y # CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_LONG_TIMEOUT is not set -# CONFIG_USB_LARGE_CONFIG is not set # # USB Controllers Index: gemini_defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/configs/gemini_defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- gemini_defconfig 10 Apr 2002 15:04:04 -0000 1.2 +++ gemini_defconfig 10 Jun 2003 01:46:02 -0000 1.3 @@ -4,6 +4,7 @@ # CONFIG_UID16 is not set # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_HAVE_DEC_LOCK=y # # Code maturity level options @@ -109,8 +110,6 @@ # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set -CONFIG_NETLINK=y -# CONFIG_RTNETLINK is not set # CONFIG_NETLINK_DEV is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -122,6 +121,7 @@ # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set # CONFIG_INET_ECN is not set # CONFIG_SYN_COOKIES is not set @@ -221,15 +221,11 @@ # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_NCR53C7xx is not set -# CONFIG_SCSI_NCR53C8XX is not set -CONFIG_SCSI_SYM53C8XX=y -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 -# CONFIG_SCSI_NCR53C8XX_PROFILE is not set -# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set -# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set -# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set # CONFIG_SCSI_PCI2220I is not set @@ -432,11 +428,15 @@ # CONFIG_AUTOFS4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set # CONFIG_FAT_FS is not set # CONFIG_MSDOS_FS is not set # CONFIG_UMSDOS_FS is not set @@ -449,6 +449,7 @@ # CONFIG_RAMFS is not set CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set # CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set @@ -473,6 +474,7 @@ # Network File Systems # # CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_ROOT_NFS is not set @@ -490,6 +492,8 @@ # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set # # Partition Types Index: ibmchrp_defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/configs/ibmchrp_defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ibmchrp_defconfig 10 Apr 2002 15:04:04 -0000 1.2 +++ ibmchrp_defconfig 10 Jun 2003 01:46:02 -0000 1.3 @@ -4,6 +4,7 @@ # CONFIG_UID16 is not set # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_HAVE_DEC_LOCK=y # # Code maturity level options @@ -112,8 +113,6 @@ # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set -CONFIG_NETLINK=y -# CONFIG_RTNETLINK is not set # CONFIG_NETLINK_DEV is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -126,6 +125,7 @@ # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set # CONFIG_INET_ECN is not set CONFIG_SYN_COOKIES=y @@ -252,15 +252,11 @@ # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_NCR53C7xx is not set -# CONFIG_SCSI_NCR53C8XX is not set -CONFIG_SCSI_SYM53C8XX=y -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 -# CONFIG_SCSI_NCR53C8XX_PROFILE is not set -# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set -# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set -# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set # CONFIG_SCSI_PCI2220I is not set @@ -343,6 +339,7 @@ # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set # CONFIG_VIA_RHINE is not set +# CONFIG_VIA_RHINE_MMIO is not set # CONFIG_WINBOND_840 is not set # CONFIG_NET_POCKET is not set @@ -546,7 +543,7 @@ # CONFIG_WATCHDOG is not set # CONFIG_INTEL_RNG is not set CONFIG_NVRAM=y -CONFIG_RTC=y +# CONFIG_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -571,11 +568,15 @@ # CONFIG_AUTOFS4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m # CONFIG_UMSDOS_FS is not set @@ -588,6 +589,7 @@ # CONFIG_RAMFS is not set CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set # CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set @@ -612,6 +614,7 @@ # Network File Systems # # CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set # CONFIG_NFS_FS is not set # CONFIG_NFS_V3 is not set # CONFIG_ROOT_NFS is not set @@ -629,6 +632,8 @@ # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set # # Partition Types @@ -677,7 +682,7 @@ # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ISO8859_1 is not set +CONFIG_NLS_ISO8859_1=m # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set Index: power3_defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/configs/power3_defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- power3_defconfig 10 Apr 2002 15:04:04 -0000 1.2 +++ power3_defconfig 10 Jun 2003 01:46:02 -0000 1.3 @@ -4,6 +4,7 @@ # CONFIG_UID16 is not set # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_HAVE_DEC_LOCK=y # # Code maturity level options @@ -66,6 +67,7 @@ # CONFIG_PARPORT_AMIGA is not set # CONFIG_PARPORT_MFC3 is not set # CONFIG_PARPORT_ATARI is not set +# CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_SUNBPP is not set # CONFIG_PARPORT_OTHER is not set # CONFIG_PARPORT_1284 is not set @@ -119,8 +121,6 @@ # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set -CONFIG_NETLINK=y -# CONFIG_RTNETLINK is not set # CONFIG_NETLINK_DEV is not set # CONFIG_NETFILTER is not set # CONFIG_FILTER is not set @@ -132,6 +132,7 @@ # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set # CONFIG_INET_ECN is not set CONFIG_SYN_COOKIES=y # CONFIG_IPV6 is not set @@ -224,15 +225,11 @@ # CONFIG_SCSI_IMM is not set # CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_NCR53C7xx is not set -# CONFIG_SCSI_NCR53C8XX is not set -CONFIG_SCSI_SYM53C8XX=y -CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 -CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 -CONFIG_SCSI_NCR53C8XX_SYNC=20 -# CONFIG_SCSI_NCR53C8XX_PROFILE is not set -# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set -# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set -# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set # CONFIG_SCSI_PCI2220I is not set @@ -315,6 +312,7 @@ # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set # CONFIG_VIA_RHINE is not set +# CONFIG_VIA_RHINE_MMIO is not set # CONFIG_WINBOND_840 is not set # CONFIG_NET_POCKET is not set @@ -474,6 +472,7 @@ # CONFIG_I2C_VELLEMAN is not set CONFIG_I2C_ALGOPCF=y # CONFIG_I2C_ELEKTOR is not set +# CONFIG_I2C_KEYWEST is not set CONFIG_I2C_CHARDEV=y # CONFIG_I2C_PROC is not set @@ -553,11 +552,15 @@ # CONFIG_AUTOFS4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y # CONFIG_UMSDOS_FS is not set @@ -570,6 +573,7 @@ # CONFIG_RAMFS is not set CONFIG_ISO9660_FS=y CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set # CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set @@ -594,6 +598,7 @@ # Network File Systems # # CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_ROOT_NFS is not set @@ -611,6 +616,8 @@ # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set # # Partition Types @@ -665,7 +672,7 @@ # Sound # CONFIG_SOUND=y -# CONFIG_DMASOUND_AWACS is not set +# CONFIG_DMASOUND_PMAC is not set # CONFIG_SOUND_BT878 is not set # CONFIG_SOUND_CMPCI is not set # CONFIG_SOUND_EMU10K1 is not set |
From: Dave A. <ai...@us...> - 2003-06-10 02:01:58
|
Update of /cvsroot/linux-vax/kernel-2.4 In directory sc8-pr-cvs1:/tmp/cvs-serv23180 Modified Files: CREDITS MAINTAINERS Makefile Rules.make Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: CREDITS =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/CREDITS,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- CREDITS 10 Jun 2003 01:13:10 -0000 1.3 +++ CREDITS 10 Jun 2003 01:45:42 -0000 1.4 @@ -525,6 +525,16 @@ S: Bellevue, Washington 98007 S: USA +N: Christopher L. Cheney +E: cc...@de... +E: cc...@ch... +W: http://www.cheney.cx +P: 1024D/8E384AF2 2D31 1927 87D7 1F24 9FF9 1BC5 D106 5AB3 8E38 4AF2 +D: Vista Imaging usb webcam driver +S: 314 Prince of Wales +S: Conroe, TX 77304 +S: USA + N: Stuart Cheshire E: che...@cs... D: Author of Starmode Radio IP (STRIP) driver @@ -1203,10 +1213,10 @@ S: Germany N: Christoph Hellwig -E: hc...@ca... E: hc...@in... D: misc driver & makefile hacking D: freevxfs driver +D: sysvfs maintainer S: Triftstraße 26 S: 38644 Goslar S: Germany @@ -1265,6 +1275,13 @@ D: bug toaster (A1 sauce makes all the difference) D: Random linux hacker +N: Tim Hockin +E: th...@ho... +W: http://www.hockin.org/~thockin +D: Natsemi ethernet +D: Cobalt Networks (x86) support +D: This-and-That + N: Dirk Hohndel E: ho...@su... D: The XFree86[tm] Project @@ -1951,9 +1968,10 @@ S: Germany N: Mark W. McClelland -E: mwm@i.am +E: mmc...@bi... E: ma...@al... W: http://alpha.dyndns.org/ov511/ +P: 1024D/357375CC 317C 58AC 1B39 2AB0 AB96 EB38 0B6F 731F 3573 75CC D: OV511 driver S: (address available on request) S: USA @@ -2633,6 +2651,16 @@ D: Linux-Support, -Mailbox, -Stammtisch D: several improvements to system programs S: Oldenburg +S: Germany + +N: Robert Schwebel +E: ro...@sc... +W: http://www.schwebel.de +D: Embedded hacker and book author, +D: AMD Elan support for Linux +S: Pengutronix +S: Braunschweiger Strasse 79 +S: 31134 Hildesheim S: Germany N: Darren Senn Index: MAINTAINERS =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/MAINTAINERS,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- MAINTAINERS 10 Jun 2003 01:13:10 -0000 1.3 +++ MAINTAINERS 10 Jun 2003 01:45:42 -0000 1.4 @@ -582,7 +582,7 @@ FREEVXFS FILESYSTEM P: Christoph Hellwig -M: hc...@ca... +M: hc...@in... W: ftp://ftp.openlinux.org/pub/people/hch/vxfs S: Maintained @@ -1022,6 +1022,11 @@ M: and...@us... S: Maintained +NATSEMI ETHERNET DRIVER (DP8381x) +P: Tim Hockin +M: th...@ho... +S: Maintained + NCP FILESYSTEM P: Petr Vandrovec M: van...@vc... @@ -1045,9 +1050,10 @@ M: ja...@in... P: Harald Welte M: la...@gn... -W: http://netfilter.samba.org -W: http://netfilter.kernelnotes.org -W: http://netfilter.filewatcher.org +P: Jozsef Kadlecsik +M: ka...@bl... +W: http://www.netfilter.org/ +W: http://www.iptables.org/ L: net...@li... S: Supported @@ -1145,8 +1151,8 @@ S: Maintained OPL3-SA2, SA3, and SAx DRIVER -P: Scott Murray -M: sc...@sp... +P: Zwane Mwaikambo +M: zw...@co... L: lin...@vg... S: Maintained @@ -1172,9 +1178,9 @@ PERSONALITY HANDLING P: Christoph Hellwig -M: hc...@ca... +M: hc...@in... L: lin...@li... -S: Supported +S: Maintained PCI ID DATABASE P: Jens Maurer @@ -1255,6 +1261,12 @@ W: http://www.alarsen.net/linux/qnx4fs/ S: Maintained +RADEON FRAMEBUFFER DISPLAY DRIVER +P: Ani Joshi +M: aj...@sh... +L: lin...@li... +S: Maintained + RAGE128 FRAMEBUFFER DISPLAY DRIVER P: Ani Joshi M: aj...@sh... @@ -1462,7 +1474,7 @@ SYSV FILESYSTEM P: Christoph Hellwig -M: hc...@ca... +M: hc...@in... S: Maintained TLAN NETWORK DRIVER @@ -1606,7 +1618,7 @@ USB OV511 DRIVER P: Mark McClelland -M: mwm@i.am +M: mmc...@bi... L: lin...@li... L: lin...@li... W: http://alpha.dyndns.org/ov511/ Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Makefile,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- Makefile 10 Jun 2003 01:13:11 -0000 1.17 +++ Makefile 10 Jun 2003 01:45:42 -0000 1.18 @@ -1,13 +1,13 @@ VERSION = 2 PATCHLEVEL = 4 -SUBLEVEL = 17 +SUBLEVEL = 18 EXTRAVERSION = 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/) ARCH=vax -KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//") +KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g") CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ @@ -41,7 +41,7 @@ MODFLAGS = -DMODULE CFLAGS_KERNEL = PERL = perl -MAKE = make -j3 +MAKE = make export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \ CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ @@ -139,7 +139,8 @@ drivers/net/net.o \ drivers/media/media.o DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o -DRIVERS-$(CONFIG_DRM) += drivers/char/drm/drm.o +DRIVERS-$(CONFIG_DRM_NEW) += drivers/char/drm/drm.o +DRIVERS-$(CONFIG_DRM_OLD) += drivers/char/drm-4.0/drm.o DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a DRIVERS-$(CONFIG_ISDN) += drivers/isdn/isdn.a DRIVERS-$(CONFIG_NET_FC) += drivers/net/fc/fc.o @@ -211,7 +212,7 @@ drivers/scsi/aic7xxx/aicasm/aicasm_scan.c \ drivers/scsi/aic7xxx/aicasm/y.tab.h \ drivers/scsi/aic7xxx/aicasm/aicasm \ - drivers/scsi/53c700-mem.c \ + drivers/scsi/53c700_d.h \ net/khttpd/make_times_h \ net/khttpd/times.h \ submenu* @@ -249,14 +250,14 @@ include arch/$(ARCH)/Makefile -export CPPFLAGS CFLAGS AFLAGS +export CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL export NETWORKS DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS .S.s: - $(CPP) $(AFLAGS) -traditional -o $*.s $< + $(CPP) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -o $*.s $< .S.o: - $(CC) $(AFLAGS) -traditional -c -o $*.o $< + $(CC) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -c -o $*.o $< Version: dummy @rm -f include/linux/compile.h @@ -336,15 +337,17 @@ @echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' >>.ver @mv -f .ver $@ +comma := , + init/version.o: init/version.c include/linux/compile.h include/config/MARKER - $(CC) $(CFLAGS) $(CFLAGS_KERNEL) -DUTS_MACHINE='"$(ARCH)"' -c -o init/version.o init/version.c + $(CC) $(CFLAGS) $(CFLAGS_KERNEL) -DUTS_MACHINE='"$(ARCH)"' -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o init/version.o init/version.c # FIXME: GCC bug? using -g here (in order to get source in the assembly listing) # reduces the BogoMIPS rating. Examination of listing file shows that the compiler # optimizes less when we use -g (even though -O1 is in CFLAGS). This isn't supposed # to happen... init/main.o: init/main.c include/config/MARKER - $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -c -o $*.o $< # -Wa,-adnhls=$*.lst -g + $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $*.o $< # -Wa,-adnhls=$*.lst -g fs lib mm ipc kernel drivers net: dummy $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@) Index: Rules.make =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Rules.make,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Rules.make 12 Feb 2003 03:19:45 -0000 1.5 +++ Rules.make 10 Jun 2003 01:45:43 -0000 1.6 @@ -31,6 +31,8 @@ unexport subdir-n unexport subdir- +comma := , + # # Get things started. # @@ -54,7 +56,7 @@ $(CPP) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) $< > $@ %.o: %.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -c -o $@ $< -g #-Wa,-adnhls=$*.lst -g + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -c -o $@ $< -g #-Wa,-adnhls=$*.lst -g @ ( \ echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@))),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS) $$(CFLAGS_$@))))' ; \ echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \ @@ -134,7 +136,7 @@ $(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep endif - + # # A rule to make subdirectories # @@ -230,7 +232,7 @@ if [ -r $@ ] && cmp -s $@ $@.tmp; then echo $@ is unchanged; rm -f $@.tmp; \ else echo mv $@.tmp $@; mv -f $@.tmp $@; fi; \ fi; touch $(MODINCL)/$*.stamp - + $(addprefix $(MODINCL)/,$(export-objs:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h # updates .ver files but not modversions.h @@ -271,7 +273,7 @@ ifneq "$(strip $(export-objs))" "" $(export-objs): $(export-objs:.o=.c) $(TOPDIR)/include/linux/modversions.h - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -DEXPORT_SYMTAB -c $(@:.o=.c) + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -DEXPORT_SYMTAB -c $(@:.o=.c) @ ( \ echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -DEXPORT_SYMTAB)),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS) $$(CFLAGS_$@) -DEXPORT_SYMTAB)))' ; \ echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \ |
From: Dave A. <ai...@us...> - 2003-06-10 02:01:55
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390/math-emu In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/s390/math-emu Modified Files: math.c Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: math.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390/math-emu/math.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- math.c 10 Apr 2002 15:06:38 -0000 1.1 +++ math.c 10 Jun 2003 01:46:10 -0000 1.2 @@ -96,7 +96,7 @@ return SIGSEGV; \ } while (0) -static void display_emulation_not_implemented(char *instr) +static void display_emulation_not_implemented(struct pt_regs *regs, char *instr) { struct pt_regs *regs; __u16 *location; @@ -105,7 +105,6 @@ if(sysctl_ieee_emulation_warnings) #endif [...1413 lines suppressed...] - _fex = ((int (*)(int, long)) jump_table[opcode[5]]) - (opcode[1] >> 4, dxb); + _fex = ((int (*)(struct pt_regs *, int, long)) + jump_table[opcode[5]]) + (regs, opcode[1] >> 4, dxb); break; } case 10: /* RXE format, RX address used as int value */ { @@ -2039,8 +2065,9 @@ opc = *((__u32 *) opcode); dxb = (__u64) calc_addr(regs, opc >> 16, opc >> 12, opc); /* call the emulation function */ - _fex = ((int (*)(int, long)) jump_table[opcode[5]]) - (opcode[1] >> 4, dxb); + _fex = ((int (*)(struct pt_regs *, int, long)) + jump_table[opcode[5]]) + (regs, opcode[1] >> 4, dxb); break; } default: /* invalid operation */ |
From: Dave A. <ai...@us...> - 2003-06-10 02:01:55
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390x/boot In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/s390x/boot Modified Files: Makefile Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/boot/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 9 Apr 2002 17:03:17 -0000 1.2 +++ Makefile 10 Jun 2003 01:46:13 -0000 1.3 @@ -35,3 +35,5 @@ clean: rm -f image listing iplfba.boot ipleckd.boot ipldump.boot +install: $(CONFIGURE) $(BOOTIMAGE) + sh -x ./install.sh $(KERNELRELEASE) $(BOOTIMAGE) $(TOPDIR)/System.map $(TOPDIR)/Kerntypes "$(INSTALL_PATH)" |
From: Dave A. <ai...@us...> - 2003-06-10 02:01:55
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390x In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/s390x Modified Files: Makefile config.in defconfig vmlinux-shared.lds vmlinux.lds Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 9 Apr 2002 17:03:17 -0000 1.2 +++ Makefile 10 Jun 2003 01:46:12 -0000 1.3 @@ -55,6 +55,9 @@ image: vmlinux @$(MAKEBOOT) image +install: vmlinux + @$(MAKEBOOT) BOOTIMAGE=image install + archclean: @$(MAKEBOOT) clean Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/config.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- config.in 9 Apr 2002 17:03:17 -0000 1.2 +++ config.in 10 Jun 2003 01:46:12 -0000 1.3 @@ -71,9 +71,9 @@ comment 'Kernel hacking' #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC -if [ "$CONFIG_CTC" = "y" ]; then - bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG -fi +#if [ "$CONFIG_CTC" = "y" ]; then +# bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG +#fi bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ endmenu Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- defconfig 9 Apr 2002 17:03:17 -0000 1.2 +++ defconfig 10 Jun 2003 01:46:12 -0000 1.3 @@ -6,7 +6,7 @@ # CONFIG_MCA is not set CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set -CONFIG_GENERIC_BUST_SPINLOCK=n +# CONFIG_GENERIC_BUST_SPINLOCK is not set CONFIG_ARCH_S390=y CONFIG_ARCH_S390X=y @@ -103,8 +103,8 @@ # # S/390 tape hardware support # -CONFIG_S390_TAPE_3490=y -CONFIG_S390_TAPE_3480=y +CONFIG_S390_TAPE_3490=m +CONFIG_S390_TAPE_3480=m # # Network device drivers @@ -150,6 +150,7 @@ # CONFIG_IPV6_NETLINK is not set # CONFIG_KHTTPD is not set # CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set # # @@ -180,12 +181,12 @@ # CONFIG_AUTOFS4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set -# CONFIG_CMS_FS is not set # CONFIG_EXT3_FS is not set # CONFIG_JBD is not set # CONFIG_JBD_DEBUG is not set @@ -203,7 +204,7 @@ # CONFIG_JOLIET is not set # CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set -# CONFIG_FREEVXFS_FS is not set +# CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set # CONFIG_NTFS_RW is not set # CONFIG_HPFS_FS is not set Index: vmlinux-shared.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/vmlinux-shared.lds,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- vmlinux-shared.lds 9 Apr 2002 17:03:17 -0000 1.1 +++ vmlinux-shared.lds 10 Jun 2003 01:46:12 -0000 1.2 @@ -13,7 +13,6 @@ *(.fixup) *(.gnu.warning) } = 0x0700 - .text.lock : { *(.text.lock) } /* out-of-line lock text */ .rodata : { *(.rodata) } .kstrtab : { *(.kstrtab) } Index: vmlinux.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390x/vmlinux.lds,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- vmlinux.lds 9 Apr 2002 17:03:17 -0000 1.2 +++ vmlinux.lds 10 Jun 2003 01:46:12 -0000 1.3 @@ -13,7 +13,6 @@ *(.fixup) *(.gnu.warning) } = 0x0700 - .text.lock : { *(.text.lock) } /* out-of-line lock text */ .rodata : { *(.rodata) *(.rodata.*) } .kstrtab : { *(.kstrtab) } |
From: Dave A. <ai...@us...> - 2003-06-10 01:54:26
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390/lib In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/s390/lib Modified Files: uaccess.S Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: uaccess.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390/lib/uaccess.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- uaccess.S 25 Feb 2001 23:15:22 -0000 1.1.1.1 +++ uaccess.S 10 Jun 2003 01:46:09 -0000 1.2 @@ -6,46 +6,92 @@ * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation * Authors(s): Martin Schwidefsky (sch...@de...) * - * These functions have a non-standard call interface + * These functions have standard call interface */ #include <asm/lowcore.h> .text .align 4 - .globl __copy_from_user_fixup -__copy_from_user_fixup: - l 1,__LC_PGM_OLD_PSW+4 - sll 4,1 - srl 4,1 -0: lhi 3,-4096 - sll 3,1 - srl 3,1 - n 3,__LC_TRANS_EXC_ADDR - sr 3,4 - bm 4(1) -1: mvcle 2,4,0 - b 4(1) + .globl __copy_from_user_asm +__copy_from_user_asm: + lr %r5,%r3 + sacf 512 +0: mvcle %r2,%r4,0 + jo 0b + sacf 0 + lr %r2,%r5 + br %r14 +1: l %r1,__LC_PGM_OLD_PSW+4 + sll %r4,1 + srl %r4,1 +2: lhi %r3,-4096 + sll %r3,1 + srl %r3,1 + n %r3,__LC_TRANS_EXC_ADDR + sr %r3,%r4 + bm 4(%r1) +3: mvcle %r2,%r4,0 + b 4(%r1) .section __ex_table,"a" - .long 1b,0b + .long 0b,1b + .long 3b,2b .previous .align 4 .text - .globl __copy_to_user_fixup -__copy_to_user_fixup: - l 1,__LC_PGM_OLD_PSW+4 - sll 4,1 - srl 4,1 -0: lhi 5,-4096 - sll 5,1 - srl 5,1 - n 5,__LC_TRANS_EXC_ADDR - sr 5,4 - bm 4(1) -1: mvcle 4,2,0 - b 4(1) + .globl __copy_to_user_asm +__copy_to_user_asm: + lr %r5,%r3 + sacf 512 +0: mvcle %r4,%r2,0 + jo 0b + sacf 0 + lr %r2,%r3 + br %r14 +1: l %r1,__LC_PGM_OLD_PSW+4 + sll %r4,1 + srl %r4,1 +2: lhi %r5,-4096 + sll %r5,1 + srl %r5,1 + n %r5,__LC_TRANS_EXC_ADDR + sr %r5,%r4 + bm 4(%r1) +3: mvcle %r4,%r2,0 + b 4(%r1) .section __ex_table,"a" - .long 1b,0b + .long 0b,1b + .long 3b,2b + .previous + + .align 4 + .text + .globl __clear_user_asm +__clear_user_asm: + lr %r4,%r2 + lr %r5,%r3 + sr %r2,%r2 + sr %r3,%r3 + sacf 512 +0: mvcle %r4,%r2,0 + jo 0b + sacf 0 + lr %r2,%r3 + br %r14 +1: l %r1,__LC_PGM_OLD_PSW+4 + sll %r4,1 + srl %r4,1 +2: lhi %r5,-4096 + sll %r5,1 + srl %r5,1 + n %r5,__LC_TRANS_EXC_ADDR + sr %r5,%r4 + bm 4(%r1) +3: mvcle %r4,%r2,0 + b 4(%r1) + .section __ex_table,"a" + .long 0b,1b + .long 3b,2b .previous |
From: Dave A. <ai...@us...> - 2003-06-10 01:54:25
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390/boot In directory sc8-pr-cvs1:/tmp/cvs-serv23180/arch/s390/boot Modified Files: Makefile Log Message: DA: sync to Marcelo 2.4.18 + remove init_mmap (no longer needed) Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/s390/boot/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile 9 Apr 2002 17:03:16 -0000 1.2 +++ Makefile 10 Jun 2003 01:46:08 -0000 1.3 @@ -35,3 +35,6 @@ clean: rm -f image listing iplfba.boot ipleckd.boot ipldump.boot +install: $(CONFIGURE) $(BOOTIMAGE) + sh -x ./install.sh $(KERNELRELEASE) $(BOOTIMAGE) $(TOPDIR)/System.map $(TOPDIR)/Kerntypes "$(INSTALL_PATH)" + |