272461 |
03-Oct-2014 |
gjb |
Copy stable/10@r272459 to releng/10.1 as part of the 10.1-RELEASE process.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
256281 |
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
227843 |
22-Nov-2011 |
marius |
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
|
221708 |
09-May-2011 |
jkim |
Move VT switching hack for suspend/resume from bus drivers to syscons.c using event handlers. A different version was
Submitted by: Taku YAMAMOTO (taku at tackymt dot homeip dot net)
|
221526 |
06-May-2011 |
jhb |
Retire isa_setup_intr() and isa_teardown_intr() and use the generic bus versions instead. They were never needed as bus_generic_intr() and bus_teardown_intr() had been changed to pass the original child device up in 42734, but the ISA bus was not converted to new-bus until 45720.
|
220126 |
29-Mar-2011 |
jhb |
- Enable an extra debugging bootverbose printf when probing ISA PNP cards listing each card as it is found on non-PC98 (PC98 already had this). - Increase the length of the DELAY() used before timing out while reading PNP resource data.
Tested by: Steven Nikkel steven_nikkel ertyu org MFC after: 1 week
|
212413 |
10-Sep-2010 |
avg |
bus_add_child: change type of order parameter to u_int
This reflects actual type used to store and compare child device orders. Change is mostly done via a Coccinelle (soon to be devel/coccinelle) semantic patch. Verified by LINT+modules kernel builds.
Followup to: r212213 MFC after: 10 days
|
210149 |
15-Jul-2010 |
jkim |
When we are not switching VTs, just mark all buffer to be updated.
|
209371 |
20-Jun-2010 |
mav |
Implement new event timers infrastructure. It provides unified APIs for writing event timer drivers, for choosing best possible drivers by machine independent code and for operating them to supply kernel with hardclock(), statclock() and profclock() events in unified fashion on various hardware.
Infrastructure provides support for both per-CPU (independent for every CPU core) and global timers in periodic and one-shot modes. MI management code at this moment uses only periodic mode, but one-shot mode use planned for later, as part of tickless kernel project.
For this moment infrastructure used on i386 and amd64 architectures. Other archs are welcome to follow, while their current operation should not be affected.
This patch updates existing drivers (i8254, RTC and LAPIC) for the new order, and adds event timers support into the HPET driver. These drivers have different capabilities: LAPIC - per-CPU timer, supports periodic and one-shot operation, may freeze in C3 state, calibrated on first use, so may be not exactly precise. HPET - depending on hardware can work as per-CPU or global, supports periodic and one-shot operation, usually provides several event timers. i8254 - global, limited to periodic mode, because same hardware used also as time counter. RTC - global, supports only periodic mode, set of frequencies in Hz limited by powers of 2.
Depending on hardware capabilities, drivers preferred in following orders, either LAPIC, HPETs, i8254, RTC or HPETs, LAPIC, i8254, RTC. User may explicitly specify wanted timers via loader tunables or sysctls: kern.eventtimer.timer1 and kern.eventtimer.timer2. If requested driver is unavailable or unoperational, system will try to replace it. If no more timers available or "NONE" specified for second, system will operate using only one timer, multiplying it's frequency by few times and uing respective dividers to honor hz, stathz and profhz values, set during initial setup.
|
208567 |
26-May-2010 |
jkim |
Do not attempt to switch to the same VTs between suspend and resume.
|
208564 |
26-May-2010 |
jkim |
Let the first device suspend and the last device resume syscons(4).
|
208413 |
22-May-2010 |
jkim |
Fix more style(9) nits that I missed in the previous commit.
|
208412 |
22-May-2010 |
jkim |
Fix style(9) nits.
|
208411 |
22-May-2010 |
jkim |
Suspend screen updates when the video controller is powered down.
|
204309 |
25-Feb-2010 |
attilio |
Introduce the new kernel sub-tree x86 which should contain all the code shared and generalized between our current amd64, i386 and pc98.
This is just an initial step that should lead to a more complete effort. For the moment, a very simple porting of cpufreq modules, BIOS calls and the whole MD specific ISA bus part is added to the sub-tree but ideally a lot of code might be added and more shared support should grow.
Sponsored by: Sandvine Incorporated Reviewed by: emaste, kib, jhb, imp Discussed on: arch MFC: 3 weeks
|
201758 |
07-Jan-2010 |
mbr |
Remove extraneous semicolons, no functional changes.
Submitted by: Marc Balmer <marc@msys.ch> MFC after: 1 week
|
201223 |
29-Dec-2009 |
rnoland |
Update d_mmap() to accept vm_ooffset_t and vm_memattr_t.
This replaces d_mmap() with the d_mmap2() implementation and also changes the type of offset to vm_ooffset_t.
Purge d_mmap2().
All driver modules will need to be rebuilt since D_VERSION is also bumped.
Reviewed by: jhb@ MFC after: Not in this lifetime...
|
200584 |
15-Dec-2009 |
jkim |
Attach dpms(4) to vgapm and make sure to restore DPMS state after VGA is resumed properly.
Reviewed by: jhb
|
199229 |
12-Nov-2009 |
jkim |
- Partially revert hackish r198964 and r199002. - Add a proxy driver vgapm to help vgapci to save/load VGA state. - Move device_set_desc() to the right place while we are here.
Reviewed by: jhb
|
199002 |
06-Nov-2009 |
jkim |
Remove duplicate suspend/resume code from vga_pci.c and let vga(4) register itself to an associated PCI device if it exists. It is little bit hackish but it should fix build without frame buffer driver since r198964. Fix some style(9) nits in vga_isa.c while we are here.
|
198964 |
05-Nov-2009 |
jkim |
Save/restore VGA state from vga_pci.c instead of relying on vga_isa.c. It was not working because we were saving its state after the device was powered down. Simplify vesa_load_state() as the culprit is fixed now.
|
198866 |
04-Nov-2009 |
jkim |
Save/restore VGA color palette while suspending and resuming.
|
196520 |
24-Aug-2009 |
jhb |
Tweak the way that the ACPI and ISA bus drivers match hint devices to BIOS-enumerated devices: - Assume a device is a match if the memory and I/O ports match even if the IRQ or DRQ is wrong or missing. Some BIOSes don't include an IRQ for the atrtc device for example. - Add a hack to better match floppy controller devices. Many BIOSes do not include the starting port of the floppy controller listed in the hints (0x3f0) in the resources for the device. So far, however, all the BIOS variations encountered do include the 'port + 2' resource (0x3f2), so adjust the matching for "fdc" devices to look for 'port + 2'.
Reviewed by: imp MFC after: 3 days
|
191766 |
03-May-2009 |
mav |
Rename statclock_disable variable to atrtcclock_disable that it actually is, and hide it inside of atrtc driver. Add new tunable hint.atrtc.0.clock controlling it. Setting it to 0 disables using RTC clock as stat-/ profclock sources.
Teach i386 and amd64 SMP platforms to emulate stat-/profclocks using i8254 hardclock, when LAPIC and RTC clocks are disabled.
This allows to reduce global interrupt rate of idle system down to about 100 interrupts per core, permitting C3 and deeper C-states provide maximum CPU power efficiency.
|
191733 |
01-May-2009 |
mav |
Add resume methods to i8254 and atrtc devices.
|
189421 |
05-Mar-2009 |
jhb |
Allow syscons to work on amd64 and i386 without any hints: - Enable keyboard autodetection by default for ISA syscons attachments. - If there are no syscons hints at all, assume there is a single sc0 device anyway. The console probe will still fail unless a VGA adapter is found.
MFC after: 2 weeks
|
185059 |
18-Nov-2008 |
jhb |
Allow device hints to wire the unit numbers of devices. - An "at" hint now reserves a device name. - A new BUS_HINT_DEVICE_UNIT method is added to the bus interface. When determining the unit number of a device, this method is invoked to let the bus driver specify the unit of a device given a specific devclass. This is the only way a device can be given a name reserved via an "at" hint. - Implement BUS_HINT_DEVICE_UNIT() for the acpi(4) and isa(4) bus drivers. Both of these busses implement this by comparing the resources for a given hint device with the resources enumerated by ACPI/PnPBIOS and wire a unit if the hint resources are a subset of the "real" resources. - Use bus_hinted_children() for adding hinted devices on isa(4) busses now instead of doing it by hand. - Remove the unit kludging from sio(4) as it is no longer necessary.
Prodding from: peter, imp OK'd by: marcel MFC after: 1 month
|
184564 |
02-Nov-2008 |
imp |
MFp4:
Make the ISA bus keep track of more PNP details. Plus a minor style fix while I'm here. More could be done here, but except for some SBCs that don't have ACPI, there's limited value to anybody in doing so.
|
182103 |
24-Aug-2008 |
imp |
MFp4 (my newcard tree):
ISACFGATTR_MULTI is unused. Retire it, and a function that has no side effects used to compute it.
|
178192 |
14-Apr-2008 |
phk |
atrtc.c is a repocopy of the RTC device driver from i386/isa/clock.c
In addition to the device driver functionality, it exposes a number of functions which various other bits of code use to fondle the RTC chip.
|
178163 |
12-Apr-2008 |
phk |
Move i386 to generic RTC handling code.
Make clock_if.m and subr_rtc.c standard on i386
Add hints for "atrtc" driver, for non-PnP, non-ACPI systems. NB: Make sure to install GENERIC.hints into /boot/device.hints in these!
Nuke MD inittodr(), resettodr() functions.
Don't attach to PHP0B00 in the "attimer" dummy driver any more, and remove comments that no longer apply for that reason.
Add new "atrtc" device driver, which handles IBM PC AT Real Time Clock compatible devices using subr_rtc and clock_if.
This driver is not entirely clean: other code still fondles the hardware to get a statclock interrupt on non-ACPI timer systems.
Wrap some overly long lines.
After it has settled in -current, this will be ported to amd64.
Technically this is MFC'able, but I fail to see a good reason.
|
177651 |
26-Mar-2008 |
phk |
Back in the good old days, PC's had random pieces of rock for frequency generation and what frequency the generated was anyones guess.
In general the 32.768kHz RTC clock x-tal was the best, because that was a regular wrist-watch Xtal, whereas the X-tal generating the ISA bus frequency was much lower quality, often costing as much as several cents a piece, so it made good sense to check the ISA bus frequency against the RTC clock.
The other relevant property of those machines, is that they typically had no more than 16MB RAM.
These days, CPU chips croak if their clocks are not tightly within specs and all necessary frequencies are derived from the master crystal by means if PLL's.
Considering that it takes on average 1.5 second to calibrate the frequency of the i8254 counter, that more likely than not, we will not actually use the result of the calibration, and as the final clincher, we seldom use the i8254 for anything besides BEL in syscons anyway, it has become time to drop the calibration code.
If you need to tell the system what frequency your i8254 runs, you can do so from the loader using hw.i8254.freq or using the sysctl kern.timecounter.tc.i8254.frequency.
|
177650 |
26-Mar-2008 |
phk |
Further cleanup of sound generation in syscons:
The timer_spkr_*() functions take care of the enabling/disabling of the speaker.
Test on the existence of timer_spkr_*() functions, rather than architectures.
|
177642 |
26-Mar-2008 |
phk |
The "free-lance" timer in the i8254 is only used for the speaker these days, so de-generalize the acquire_timer/release_timer api to just deal with speakers.
The new (optional) MD functions are: timer_spkr_acquire() timer_spkr_release() and timer_spkr_setfreq()
the last of which configures the timer to generate a tone of a given frequency, in Hz instead of 1/1193182th of seconds.
Drop entirely timer2 on pc98, it is not used anywhere at all.
Move sysbeep() to kern/tty_cons.c and use the timer_spkr*() if they exist, and do nothing otherwise.
Remove prototypes and empty acquire-/release-timer() and sysbeep() functions from the non-beeping archs.
This eliminate the need for the speaker driver to know about i8254frequency at all. In theory this makes the speaker driver MI, contingent on the timer_spkr_*() functions existing but the driver does not know this yet and still attaches to the ISA bus.
Syscons is more tricky, in one function, sc_tone(), it knows the hz and things are just fine.
In the other function, sc_bell() it seems to get the period from the KDMKTONE ioctl in terms if 1/1193182th second, so we hardcode the 1193182 and leave it at that. It's probably not important.
Change a few other sysbeep() uses which obviously knew that the argument was in terms of i8254 frequency, and leave alone those that look like people thought sysbeep() took frequency in hertz.
This eliminates the knowledge of i8254_freq from all but the actual clock.c code and the prof_machdep.c on amd64 and i386, where I think it would be smart to ask for help from the timecounters anyway [TBD].
|
177631 |
26-Mar-2008 |
phk |
Rename timer0_max_count to i8254_max_count. Rename timer0_real_max_count to i8254_real_max_count and make it static. Rename timer_freq to i8254_freq and make it a loader tunable.
|
177628 |
26-Mar-2008 |
phk |
The RTC related pscnt and psdiv variables have no business being public.
|
175405 |
17-Jan-2008 |
jhb |
Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY().
MFC after: 1 week
|
174985 |
29-Dec-2007 |
wkoszek |
Replace explicit calls to video methods with their respective variants implemented with macros. This patch improves code readability. Reasoning behind vidd_* is a sort of "video discipline".
List of macros is supposed to be complete--all methods of video_switch ought to have their respective macros from now on.
Functionally, this code should be no-op. My intention is to leave current behaviour of touched code as is.
No objections: rwatson Silence on: freebsd-current@ Approved by: cognet
|
172998 |
26-Oct-2007 |
peter |
Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not refactored it to be a generic device. Instead of being part of the standard kernel, there is now a 'nvram' device for i386/amd64. It is in DEFAULTS like io and mem, and can be turned off with 'nodevice nvram'. This matches the previous behavior when it was first committed.
|
171612 |
27-Jul-2007 |
dwmalone |
It seems that some i386 mothermoards either do not implement the day of week field correctly, or they remember bad values that are written into the day of week field. For this reason, ignore the day of week field when reading the clock on i386 rather than bailing if it is set incorrectly.
Problems were seen on a number of platforms, including VMWare, qemu, EPIA ME6000, Epox-3PTA and ABIT-SL30T.
This is a slightly different fix to that proposed by Ted in his PR, but the same basic idea.
PR: 111117 Submitted by: Ted Faber <faber@lunabase.org> Approved by: re (rwatson) MFC after: 3 weeks
|
171553 |
23-Jul-2007 |
dwmalone |
If clock_ct_to_ts fails to convert time time from the real time clock, print a one line error message. Add some comments on not being able to trust the day of week field (I'll act on these comments in a follow up commit).
Approved by: re MFC after: 3 weeks
|
170802 |
15-Jun-2007 |
peter |
Prototype (but functional) Linux-ish /dev/nvram interface to the extra 114 bytes of cmos ram in the PC clock chip. The big difference between this and the Linux version is that we do not recalculate the checksums for bytes 16..31.
We use this at work when cloning identical machines - we can copy the bios settings as well. Reading /dev/nvram gives 114 bytes of data but you can seek/read/write whichever bytes you like.
Yes, this is a "foot, gun, fire!" type of device.
|
170289 |
04-Jun-2007 |
dwmalone |
Despite several examples in the kernel, the third argument of sysctl_handle_int is not sizeof the int type you want to export. The type must always be an int or an unsigned int.
Remove the instances where a sizeof(variable) is passed to stop people accidently cut and pasting these examples.
In a few places this was sysctl_handle_int was being used on 64 bit types, which would truncate the value to be exported. In these cases use sysctl_handle_quad to export them and change the format to Q so that sysctl(1) can still print them.
|
168816 |
17-Apr-2007 |
jhb |
When trying to allocate a PnP BIOS memory resource, the code loops trying to move up the start address until the allocation succeeds. If the alignment of the resource was 0, then the code would keep trying the same request in an infinite loop and hang. Force the request to always move start up by at least 1 byte each time through the loop.
|
167221 |
05-Mar-2007 |
bde |
Partial fix for a bug in rev.1.231. If suspend/resume clobbers the RTC state, then it may clobber the RTC index register, so the index register must be restored before using it to restore control registers in rtc_restore().
The following problems remain: - rtc_restore() is only called if pmtimer is configured. Buggy suspend/resumes are more likely to clobber the index register than a control register, so pmtimer is more needed than it used to be. - pmtimer doesn't exist for amd64. - Restoring of the RTC state may race with rtcintr(). If an RTC interrupt is handled before the state is restored, then rtcin(RTC_INTR) in rtcintr() may read from the wrong register, so rtcintr() may spin forever. This may be mitigated by the most common state clobbering being to turn off RTC interrupts.
|
167192 |
04-Mar-2007 |
nyan |
style(9).
|
167085 |
27-Feb-2007 |
jhb |
Use pause() rather than tsleep() on explicit global dummy variables.
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
166186 |
23-Jan-2007 |
bde |
Cleaned up declaration and initialization of clock_lock. It is only used by clock code, so don't export it to the world for machdep.c to initialize. There is a minor problem initializing it before it is used, since although clock initialization is split up so that parts of it can be done early, the first part was never done early enough to actually work. Split it up a bit more and do the first part as late as possible to document the necessary order. The functions that implement the split are still bogusly exported.
Cleaned up initialization of the i8254 clock hardware using the new split. Actually initialize it early enough, and don't work around it not being initialized in DELAY() when DELAY() is called early for initialization of some console drivers.
This unfortunately moves a little more code before the early debugger breakpoint so that it is harder to debug. The ordering of console and related initialization is delicate because we want to do as little as possible before the breakpoint, but must initialize a console.
|
165654 |
30-Dec-2006 |
ceri |
Be consistent with the spelling of "dependent" in user-visible places.
PR: kern/27429 Submitted by: T. William Wells
|
164841 |
03-Dec-2006 |
bde |
Optimized RTC accesses by avoiding null writes to the index register and by only delaying when an RTC register is written to. The delay after writing to the data register is now not just a workaround.
This reduces the number of ISA accesses in the usual case from 4 to 1. The usual case is 2 rtcin()'s for each RTC interrupt. The index register is almost always RTC_INTR for this. The 3 extra ISA accesses were 1 for writing the index and 2 for delays. Some delays are needed in theory, but in practice they now just slow down slow accesses some more since almost eveyone including us does them wrong so modern systems enforce sufficient delays in hardware. I used to have the delays ifdefed out, but with the index register optimization the delays are rarely executed so the old magic ones can be kept or even implemented non- magically without significant cost.
Optimizing RTC interrupt handling is more interesting than it used to be because RTC interrupts are currently needed to fix the more efficient apic timer interrupts on some systems. apic_timer_hz is normally 2000 so the RTC interrupt rate needs to be 2048 to keep the apic timer firing on such systems. Without these changes, each RTC interrupt normally took 10 ISA accesses (2 PIC accesses and 2 sets of 4 RTC accesses). Each ISA access takes 1-1.5uS so 10 of then at 2048 Hz takes 2-3% of a CPU. Now 4 of them take 0.8-1.2% of a CPU.
|
162963 |
02-Oct-2006 |
phk |
Use calendaric calculation support from subr_clock.c instead of home-rolled.
Eventually, this RTC should probably use subr_rtc.c as well
|
162958 |
02-Oct-2006 |
phk |
Second part of a little cleanup in the calendar/timezone/RTC handling.
Split subr_clock.c in two parts (by repo-copy): subr_clock.c contains generic RTC and calendaric stuff. etc. subr_rtc.c contains the newbus'ified RTC interface.
Centralize the machdep.{adjkerntz,disable_rtc_set,wall_cmos_clock} sysctls and associated variables into subr_clock.c. They are not machine dependent and we have generic code that relies on being present so they are not even optional.
|
162954 |
02-Oct-2006 |
phk |
First part of a little cleanup in the calendar/timezone/RTC handling.
Move relevant variables to <sys/clock.h> and fix #includes as necessary.
Use libkern's much more time- & spamce-efficient BCD routines.
|
161141 |
09-Aug-2006 |
imp |
Eliminate one set of XBOX #ifdefs. The Xbox code just needs to set a different TIMER_FREQ value than default. Accomplish this via the config file rather than via an #ifdef.
|
160185 |
08-Jul-2006 |
imp |
(apply '(lambda (reformat-region 'style-9-parens)) (read-file isahint.c))
remove redundant parens, per style(9) to reduce that limp, lispy feeling.
|
160184 |
08-Jul-2006 |
imp |
Remove old GENERIC kludge. We no longer need to skip devices named atkbd. Version 1.162 of GENERIC fixed this problem in April of 1999. Subsequent to that, the hints data was removed from GENERIC and move to hints files. All the hints file ever created have atkbd at the right location. This should have been removed just after RELENG_4 was branched (and likely around 4.5 in RELENG_4).
MFC After: 3 days
|
159552 |
12-Jun-2006 |
marius |
Make the ISAPNP code optional and only enable it on i386 and pc98 (used for CBUS-PNP cards there) by default, as there are no amd64 and sparc64 machines with ISA slots and which therefore could make use of this code known to exist. For sparc64 this additionally allows to get rid of the compat shims for in{b,w,l}()/out{b,w,l}() etc and the associated hacks.
OK'ed by: imp, peter
|
158471 |
12-May-2006 |
jhb |
Remove various bits of conditional Alpha code and fixup a few comments.
|
156243 |
03-Mar-2006 |
rink |
Committed the xbox syscons(8)-able console driver.
Reviewed by: arch@ (no comments) Approved by: imp (mentor)
|
153666 |
22-Dec-2005 |
jhb |
Tweak how the MD code calls the fooclock() methods some. Instead of passing a pointer to an opaque clockframe structure and requiring the MD code to supply CLKF_FOO() macros to extract needed values out of the opaque structure, just pass the needed values directly. In practice this means passing the pair (usermode, pc) to hardclock() and profclock() and passing the boolean (usermode) to hardclock_cpu() and hardclock_process(). Other details: - Axe clockframe and CLKF_FOO() macros on all architectures. Basically, all the archs were taking a trapframe and converting it into a clockframe one way or another. Now they can just extract the PC and usermode values directly out of the trapframe and pass it to fooclock(). - Renamed hardclock_process() to hardclock_cpu() as the latter is more accurate. - On Alpha, we now run profclock() at hz (profhz == hz) rather than at the slower stathz. - On Alpha, for the TurboLaser machines that don't have an 8254 timecounter, call hardclock() directly. This removes an extra conditional check from every clock interrupt on Alpha on the BSP. There is probably room for even further pruning here by changing Alpha to use the simplified timecounter we use on x86 with the lapic timer since we don't get interrupts from the 8254 on Alpha anyway. - On x86, clkintr() shouldn't ever be called now unless using_lapic_timer is false, so add a KASSERT() to that affect and remove a condition to slightly optimize the non-lapic case. - Change prototypeof arm_handler_execute() so that it's first arg is a trapframe pointer rather than a void pointer for clarity. - Use KCOUNT macro in profclock() to lookup the kernel profiling bucket.
Tested on: alpha, amd64, arm, i386, ia64, sparc64 Reviewed by: bde (mostly)
|
153384 |
13-Dec-2005 |
peter |
MFamd64 rev 1.223: Use the TSC to implement DELAY() if not marked broken and it has been calibrated.
|
153072 |
04-Dec-2005 |
ru |
Fix -Wundef.
|
152219 |
09-Nov-2005 |
imp |
Add support for XBOX to the FreeBSD port. The xbox architecture is nearly identical to wintel/ia32, with a couple of tweaks. Since it is so similar to ia32, it is optionally added to a i386 kernel. This port is preliminary, but seems to work well. Further improvements will improve the interaction with syscons(4), port Linux nforce driver and future versions of the xbox.
This supports the 64MB and 128MB boxes. You'll need the most recent CVS version of Cromwell (the Linux BIOS for the XBOX) to boot.
Rink will be maintaining this port, and is interested in feedback. He's setup a website http://xbox-bsd.nl to report the latest developments.
Any silly mistakes are my fault.
Submitted by: Rink P.W. Springer rink at stack dot nl and Ed Schouten ed at fxq dot nl
|
150687 |
28-Sep-2005 |
marius |
Fix an endianness issue in pnp_eisaformat(). This corrects printing PnP IDs on big-endian archs like sparc64, e.g.: uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 43 pnpid @HEd041 on isa0 is now correctly printed as: uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 43 pnpid PNP0501 on isa0
There are probably other endianness issues lurking in the PnP code which however aren't exhibited on sparc64 as the PnP devices there are sort of PnP BIOS devices rather than ISA PnP devices.
Tested on: i386, sparc64 MFC after: 1 week
|
148611 |
01-Aug-2005 |
imp |
Add pnp and location info for the ISA bus. The pnp info is the primary vendor id for this device. The location is empty because ISA doesn't give one a way to generally locate a card. PNP BIOS entries do provide a way to locate cards, as do isa pnp cards. These locations will be added as soon as the code to remember them is written.
|
147969 |
13-Jul-2005 |
jhb |
Fixup some more fallout from the lapic/i8254 changes: - Make sure timer0_max_count is set to a correct value in the lapic case. - Revert i8254_restore() to explicitly reprogram timer 0 rather than calling set_timer_freq() to do it. set_timer_freq() only reprograms the counter if the max count changes which it never does on resume. This unbreaks suspend/resume for several people.
Tested by: marks, others Reviewed by: bde MFC after: 3 days
|
147783 |
05-Jul-2005 |
jhb |
Remove a || 1 that crept into the i8254 commit and was subsequently copied and pasted. I had actually tested without this change in my trees as had the other testers.
Reported by: bde, Rostislav Krasny rosti dot bsd at gmail dot com Approved by: re (scottl) Pointy hat to: jhb
|
147727 |
01-Jul-2005 |
jhb |
Use a simpler implementation for the i8254 timecounter when using the lapic timer since irq0 isn't being driven at hz in that case and we don't need to try to handle edge cases with rollover, etc. that require irq0 to be firing for the timecounter to actually work.
Submitted by: phk Tested by: schweikh Approved by: re (scottl)
|
147271 |
10-Jun-2005 |
marius |
- Hook up the new locations of the atkbdc(4), atkbd(4) and psm(4) source files after they were repo-copied to sys/dev/atkbdc. The sources of atkbdc(4) and its children were moved to the new location in preparation for adding an EBus front-end to atkbdc(4) for use on sparc64; i.e. in order to not further scatter them over the whole tree which would have been the result of adding atkbdc_ebus.c in e.g. sys/sparc64/ebus. Another reason for the repo-copies was that some of the sources were misfiled, e.g. sys/isa/atkbd_isa.c wasn't ISA-specific at all but for hanging atkbd(4) off of atkbdc(4) and was renamed to atkbd_atkbdc.c accordingly. Most of sys/isa/psm.c, i.e. expect for its PSMC PNP part, also isn't ISA-specific. - Separate the parts of atkbdc_isa.c which aren't actually ISA-specific but are shareable between different atkbdc(4) bus front-ends into atkbdc_subr.c (repo-copied from atkbdc_isa.c). While here use bus_generic_rl_alloc_resource() and bus_generic_rl_release_resource() respectively in atkbdc_isa.c instead of rolling own versions. - Add sparc64 MD bits to atkbdc(4) and atkbd(4) and an EBus front-end for atkbdc(4). PS/2 controllers and input devices are used on a couple of Sun OEM boards and occur on either the EBus or the ISA bus. Depending on the board it's either the only on-board mean to connect a keyboard and mouse or an alternative to either RS232 or USB devices. - Wrap the PSMC PNP part of psm.c in #ifdef DEV_ISA so it can be compiled without isa(4) (e.g. for EBus-only machines). This ISA-specific part isn't separated into its own source file, yet, as it requires more work than was feasible for 6.0 in order to do it in a clean way. Actually philip@ is working on a rewrite of psm(4) so a more comprehensive clean-up and separation of hardware dependent and independent parts is expected to happen after 6.0.
Tested on: i386, sparc64 (AX1105, AXe and AXi boards) Reviewed by: philip
|
146734 |
29-May-2005 |
nyan |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines.
Reviewed by: -arch (imp, marcel, dfr)
|
146214 |
14-May-2005 |
nyan |
- Move bus dependent defines to {isa,cbus}_dmareg.h. - Use isa/isareg.h rather than <arch>/isa/isa.h.
Tested on: i386, pc98
|
146211 |
14-May-2005 |
nyan |
- Move timerreg.h to <arch>/include and split i8253 specific defines into i8253reg.h, and add some defines to control a speaker. - Move PPI related defines from i386/isa/spkr.c into ppireg.h and use them. - Move IO_{PPI,TIMER} defines into ppireg.h and timerreg.h respectively. - Use isa/isareg.h rather than <arch>/isa/isa.h.
Tested on: i386, pc98
|
146135 |
12-May-2005 |
nyan |
Remove unused IO_NPX* defines.
|
144985 |
13-Apr-2005 |
mdodd |
Add ISACFGATTR_HINTS flag to allow detection of a device that was created as a result of the hints mechanism.
|
144965 |
12-Apr-2005 |
mdodd |
Replace spl protection in rtcin() and writertc() with spinlocks using the existing clock_lock mutex.
|
144078 |
24-Mar-2005 |
jhb |
- Don't enable periodic interrupts from the RTC by default in rtc_statusb. Instead, explicitly enable them when we setup the interrupt handler. Also, move the setting of stathz and profhz down to the same place so that the code flow is simpler and easier to follow. - Don't setup an interrupt handler for IRQ0 if we are using the lapic timer as it doesn't do anything productive in that case.
|
143785 |
18-Mar-2005 |
imp |
Use STAILQ in preference to SLIST for the resources. Insert new resources last in the list rather than first.
This makes the resouces print in the 4.x order rather than the 5.x order (eg fdc0 at 0x3f0-0x3f5,0x3f7 is 4.x, but 0x3f7,0x3f0-0x3f5 is 5.x). This also means that the pci code will once again print the resources in BAR ascending order.
|
143432 |
11-Mar-2005 |
peter |
Whitespace sync with amd64. (Rather than re-add the extra blank lines on amd64, I'm removing them here)
|
143324 |
09-Mar-2005 |
jhb |
- Remove the BURN_BRIDGES marked support for hooking into the ISA timer 0 interrupt. - Remove the timer_func variable as it now has a static value of hardclock() and is only used in one place.
Axe borrowed from: phk
|
142833 |
28-Feb-2005 |
iedowse |
Save and restore the VGA state across a suspend-resume cycle. This is particularly useful when VESA is available (either `options VESA' or load the vesa module), as BIOSes in some notebooks may correctly save and restore LCD panel settings using VESA in cases where calling the video BIOS POST is not effective. On some systems it may also be necessary to set the hw.acpi.reset_video sysctl to 0.
|
142716 |
27-Feb-2005 |
phk |
Use dynamic major number allocation.
|
141538 |
08-Feb-2005 |
jhb |
Use the local APIC timer to drive the various kernel clocks on SMP machines rather than forwarding interrupts from the clock devices around using IPIs: - Add an IDT vector that pushes a clock frame and calls lapic_handle_timer(). - Add functions to program the local APIC timer including setting the divisor, and setting up the timer to either down a periodic countdown or one-shot countdown. - Add a lapic_setup_clock() function that the BSP calls from cpu_init_clocks() to setup the local APIC timer if it is going to be used. The setup uses a one-shot countdown to calibrate the timer. We then program the timer on each CPU to fire at a frequency of hz * 3. stathz is defined as freq / 23 (hz * 3 / 23), and profhz is defined as freq / 2 (hz * 3 / 2). This gives the clocks relatively prime divisors while keeping a low LCM for the frequency of the clock interrupts. Thanks to Peter Jeremy for suggesting this approach. - Remove the hardclock and statclock forwarding code including the two associated IPIs. The bitmap IPI handler has now effectively degenerated to just IPI_AST. - When the local APIC timer is used we don't turn the RTC on at all, but we still enable interrupts on the ISA timer 0 (i8254) for timecounting purposes.
|
141391 |
06-Feb-2005 |
phk |
Since we are quite unlikely to ever face another platform which uses the i8237 without trying to emulate the PC architecture move the register definitions for the i8237 chip into the central include file for the chip, except for the PC98 case which is magic.
Add new isa_dmatc() function which tells us as cheaply as possible if the terminal count has been reached for a given channel.
|
141211 |
03-Feb-2005 |
jhb |
Anytime we write to the RTC's status B register to possibly enable interrupts, read from the interrupt status register to clear any pending interrupts. Otherwise in some rare cases the RTC would never fire any interrupts as it constantly thinks it has an interrupt pending.
PR: i386/17800 PR: kern/76776 Submitted by: Jose M. Alcaide jose at we dot lc dot ehu dot es MFC after: 2 weeks
|
140647 |
23-Jan-2005 |
imp |
Protect against wrapping. This appaers to fix some hangs that people have seen in the isa pnp case where a resource buts up against 0xffffffff. This would only impact when the board was booted without ACPI.
Submitted by: Ed Maste (freebsd-stable <20050103145720.GA90754@sandvine.com>) MFC After: 5 days
|
139982 |
10-Jan-2005 |
philip |
Make life for owners of Synaptics Touchpads more pleasant :-)
o Implement a shiny new algorithm to keep track of finger movement at slow speeds. This dramatically reduces the level of questionable language from users trying to resize windows.
o Properly catch the many extra buttons and dials which manufacturers are known to screw onto Synaptics touchpad controllers. Currently, up to seven buttons are known to work, more should work too.
o Add a number of sysctls allowing one to tune the driver to taste in a simple way:
# Should the extra buttons act as axes or as middle button hw.psm.synaptics.directional_scrolls
# These control the 'stickiness' at low speeds hw.psm.synaptics.low_speed_threshold hw.psm.synaptics.min_movement hw.psm.synaptics.squelch_level
PR: kern/75725 Submitted by: Jason Kuri <jay@oneway.com> MFC after: 1 month
|
139790 |
06-Jan-2005 |
imp |
/* -> /*- for copyright notices, minor format tweaks as necessary
|
139628 |
03-Jan-2005 |
philip |
Reduce diffs to work in progress before checking in serious changes.
o Move the sysctls under debug.psm.* and hw.psm.* making them a bit clearer and more consistent with other drivers.
o Remove the debug.psm_soft_timeout sysctl. It was introduced many moons ago in r1.64 but never referenced anywhere.
o Introduce hw.psm.tap_threshold and hw.psm.tap_timeout to control the behaviour of taps on touchpads. People might like to fiddle with these if tapping seems to slow or too fast for them.
o Add debug.psm.loglevel as a tunable so that verbosity can be set easily at boot-time (to watch probes and such) without having to compile a kernel with options PSM_DEBUG=N.
|
139360 |
27-Dec-2004 |
imp |
Formatting nits
|
139279 |
24-Dec-2004 |
imp |
Get rid of #ifdef for legacy system. Move that into the MD code. Export minimal symbols to allow this to happen.
|
139273 |
24-Dec-2004 |
imp |
A few style(9) changes before more extensive changes: o u_intXX_t -> uintXX_t o use 8 character tabs o proper wrapping o return (value);
|
139271 |
24-Dec-2004 |
imp |
Make the other pnp messages more explicit as well...
|
139269 |
24-Dec-2004 |
imp |
Note when we're done probing PNP. There's been several reports over the years of hangs that turned out to be in the PNP code. Add an explicit end marker so such hangs are more apparent.
|
139268 |
24-Dec-2004 |
imp |
Various style(9) items before of some more extensive work: o return (value); o u_intXX_t -> uintXX_t o break lines o consistantly use 8 space tab stops o minor grammar nits in a few printfs
|
139267 |
24-Dec-2004 |
imp |
GC #if 0'd code. It can go away now...
|
138506 |
07-Dec-2004 |
imp |
PNP BIOS devices are fundamentally different than ISA PNP devices. These devices should be probed first because they are at fixed locations and cannot be turned off. ISA PNP devices, on the other hand, can be turned off and often can be flexible in the resources they use. Probe them last, as always.
|
137148 |
03-Nov-2004 |
phk |
Stop printing the VGA registers during verbose boot, in order to not needlessly overflow the msgbuffer. Can be reenabled if somebody ever takes an interest in syscons again.
|
136520 |
14-Oct-2004 |
njl |
Remove local hacks to set flags now that the device probe does this for us. Tested on every device except sio_pci and the pc98 fd.c. Perhaps something similar should be done for the "disabled" hints also.
MFC after: 2 weeks
|
135945 |
29-Sep-2004 |
philip |
Introduce a tunable to disable support for Synaptics touchpads. A number of people have reported problems (stickyness, aiming difficulty) which is proving difficult to fix, so this will default to disable until sometime after 5.3R.
To enable Synaptics support, set the 'hw.psm.synaptics_support=1' tunable.
MT5 candidate.
Approved by: njl
|
135690 |
24-Sep-2004 |
peter |
Converge towards i386. I originally resisted creating <machine/pc/bios.h> because it was mostly irrelevant - except for the silly BIOS_PADDRTOVADDR etc macros. Along the way of working around this, I missed a few things.
* Make syscons properly inherit the bios capslock/shiftlock/etc state like i386 does. Note that we cannot inherit the bios key repeat rate because that requires a bios call (which is impossible for us). * Give syscons the ability to beep on amd64. Oops.
While here, make bios.c compile and add it to files.amd64.
|
135262 |
15-Sep-2004 |
phk |
Add new a function isa_dma_init() which returns an errno when it fails and which takes a M_WAITOK/M_NOWAIT flag argument.
Add compatibility isa_dmainit() macro which whines loudly if isa_dma_init() fails.
Problem uncovered by: tegge
|
134405 |
27-Aug-2004 |
gibbs |
Improve sync recovery algorithm: o Remove PSM_SYNCERR_THRESHOLD1. This value specified how many sync errors were required before the mouse is re-initialised. Re-initialisation is now done after (packetsize * 2) sync errors as things aren't likely to improve after that.
o Reset lastinputerror when re-initialisation occurs. We don't want to continue to drop data after re-initialisation.
o Count the number of failed packets independently of the syncerrors statistic. syncerrors is useful for recovering sync within a single packet. pkterrors allows us to detect when the mouse changes its packet mode due to some external event (e.g. KVM switch).
o Reinitialize the mouse if we see more than psmpkterrthresh errors during the validation period. The validation period begins as soon as a sync error is detected and continues until psmerrsecs/msecs time has elapsed. The defaults for these two values force a reset if we see two packet errors in a 2 second period. This allows rapid detection of packet framing errors caused by the mouse changing packet modes.
o Export psmpkterrthresh as a sysctl
o Export psmloglevel as a sysctl.
o Enable more debugging code to be enabled at runtime via psmloglevel.
o Simplify verbose conditioned loging by using a VLOG macro.
o Add several comments describing the sync recovery algorithm of this driver.
Large Portions by: Brian Somers <brian@Awfulhak.org> Inspired and Frustrated by: Belkin KVMs Reviewed by: njl, philip
|
133918 |
17-Aug-2004 |
gibbs |
Defer the capture of the "expected sync bits" until the first "normal" data packet is received from the mouse. In the case of many KVM's, this avoids a bug in their mouse emulation that sends back incorrect sync when you explicitly request a data packet from the mouse. Without this change, you must force the driver into stock PS/2 mode or be flooded with a never ending stream of "out of sync" messages on these KVMs.
Approved by: re
|
133882 |
16-Aug-2004 |
philip |
Don't initialize static variables to 0 (C should just take care of that).
Spotted by: njl
|
133868 |
16-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume V)
o Add (long awaited) support for guest devices
Submitted by: Arne Schwabe <arne@rfc2549.org> Approved by: njl (in a former revision)
|
133301 |
08-Aug-2004 |
philip |
Assume a finger of regular width when no width value is reported by the touchpad (which happens when it has no extended capabilities).
Spotted by: dhw Forgotten by: philip
|
133298 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume IV)
o Change the motion calculation to result in a more reasonable speed of motion
This should fix the 'aiming' problems people have reported. It also mitigates (but doesn't completely solve) the 'stalling' problems at very low speeds.
Tested by: many subscribers to -current Approved by: njl
|
133297 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume III)
o Catch 'taps' as button presses
o One finger sends button1, two fingers send button3, three fingers send button2 (double-click)
Tested by: many subscribers to -current Approved by: njl
|
133296 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume II)
o Handle the 'up/down' buttons some touchpads have as a z-axis (scrollwheel) as recommended by the specs
o Report the buttons as button4 and button5 instead of button2 and button4, button2 can be emulated by pressing button1 and button3 simultaneously. This allows one to use the two extra buttons for other purposes if one so desires.
Tested by: many subscribers to -current Approved by: njl
|
133295 |
08-Aug-2004 |
philip |
Update support for Synaptics Touchpads (Volume I)
o Clean up whitespace and comments in the enable_synaptics() probing function
o Only use (and rely on) the extended capability bits when we are told they actually exist
o Partly ignore the (possibly dated?) part of the specification about the mode byte so that we can support 'guest devices' too.
Tested by: many subscribers to -current Approved by: njl
|
132865 |
30-Jul-2004 |
njl |
Add support for the Synaptics Touchpad mouse driver. I reworked the submitted version with style cleanups and changes to comments. I also modified the ioctl interface. This version only has one ioctl (to get the Synaptics-specific config parameters) since this is the only information a user might want.
Submitted by: Arne Schwabe <arne -at- rfc2549.org>
|
132270 |
16-Jul-2004 |
mux |
Ignore more strange return values of the test_aux_port() function, because some notebooks (apparently Compaq, Toshiba and Acer ones) erroneously return 2 or 3 there.
PR: kern/61482, kern/54188 Submitted by: Ulf Lilleengen <lulf@kerneled.org>, Victor Balada Diaz <victor@alf.dyndns.ws> MFC after: 3 days
|
131991 |
11-Jul-2004 |
marcel |
Partially revert previous commit. Calling getit() unconditionally fixed a problem that could also be fixed differently without reverting previous attempts to fix DELAY while the debugger is active (rev 1.204). The bug was that the i8254 implements a countdown timer, while for (k)db_active a countup timer was implemented. This resulted in premature termination and consequently the breakage of DELAY. The fix (relative to rev 1.211) is to implement a countdown timer for the kdb_active case. As such the ability to step clock initialization is preserved and DELAY does what is expected of it.
Blushed: bde :-) Submitted by: bde
|
131938 |
10-Jul-2004 |
marcel |
Call getit() unconditionally and only grab clock_lock when the debugger is not active. The fixes breakages of DELAY() when running in the debugger, because not calling getit() when the debugger is active yields a DELAY that doesn't.
|
131636 |
05-Jul-2004 |
imp |
These option roms are defined in the ISA standard, and in the ISA hole, so call them ISA Options rom(s).
|
130585 |
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
130312 |
10-Jun-2004 |
jhb |
Remove atdevbase and replace it's remaining uses with direct references to KERNBASE instead.
|
129880 |
30-May-2004 |
phk |
add missing #include <sys/module.h>
|
129876 |
30-May-2004 |
phk |
Add some missing <sys/module.h> includes which are masked by the one on death-row in <sys/kernel.h>
|
129318 |
17-May-2004 |
imp |
Move fdc from isa/fd.c to dev/fdc/fdc.c. The old files were repocopied. Soon there will be additional bus attachments and specialization for isa, acpi and pccard (and maybe pc98's cbus).
This was approved by nate, joerg and myself. bde dissented on the new location, but appeared to be OK after some discussion.
|
129130 |
11-May-2004 |
jhb |
Trim unused includes.
|
128695 |
27-Apr-2004 |
jhb |
- The i8254 uses IRQ 0, not IRQ 8. Correct i8254_intsrc to reference the correct interrupt source. - Cache a pointer to the i8254_intsrc's pending method to avoid several pointer indirections in i8254_get_timecount().
Reported by: bde
|
128632 |
25-Apr-2004 |
bde |
Fixed breakage of the formatting operation in rev.1.266. The wrong clause of an if-else statement was removed.
Reviewed by: no response from maintainer in 12 days
|
128353 |
17-Apr-2004 |
mux |
Don't check for device_get_softc() returning NULL, it can't happen.
|
128019 |
07-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson.
Approved by: core, peter, alc, rwatson
|
127841 |
04-Apr-2004 |
markm |
Put a bunch of output that us really only useful in a debug scenario into #ifdef DEBUG. This makes my cluster with Belkin KVM switch completely usable, even if the KVM switch and mouse get a bit confused sometimes.
Without this, when the mouse gets confused, all sorts of crud gets spammed all over the screen. With this, the mouse may appear dead for a second or three, but it recovers silently.
|
127135 |
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
126400 |
29-Feb-2004 |
phk |
Remove unused FDNUMTOUNIT() macro
|
126232 |
25-Feb-2004 |
phk |
Make mode setting with fdcontrol(8) stick.
Recognize when configured for "auto".
|
126080 |
21-Feb-2004 |
phk |
Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
126076 |
21-Feb-2004 |
phk |
Device megapatch 1/6:
Free approx 86 major numbers with a mostly automatically generated patch.
A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
|
125851 |
15-Feb-2004 |
njl |
Workaround some ACPI BIOSen which break the IO port into multiple resources. (Note that the correct range is 0x3f7,0x3f0-0x3f5.) Such devices will be detected as follows:
fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> port 0x3f7,0x3f4-0x3f5,0x3f2-0x3f3,0x3f0-0x3f1 irq 6 drq 2 on acpi0
To do this, we find the minimum and maximum start addresses for the resources and use them as the base for the IO and control ports.
Help from: jhb
|
123442 |
11-Dec-2003 |
alfred |
Significantly reduce the "jitter" that is typical for PS/2 mice when using a KVM.
There is no actual solution possible, but this gets us pretty close.
Typically when switching back to a FreeBSD box and moving the mouse wild data is produced, because the protocol's validation/checksum system is extremely weak it is impossible to determine that we're out of sync before dropping several bogus packets to user land.
The actual solution that appears to offer the best clamping of jitter is to buffer the mouse packets if we've not seen mouse activity for more than .5 seconds. Then waiting to flush that data for 1/20th of a second. If within that 20th of a second we get any packets that do fail the weak test we drop the entire queue and back off accepting data from the mouse for 2 seconds and then repeat the whole deal.
You can still get _some_ jitter, notably if you switch to the FreeBSD box, then move the mouse just enough to generate one or two packets. Those packets may be bogus, but may still pass the validity check.
One way to finally kill the problem once and for all is to check the initial packets for "wild" values. Typically one sees packets in the +/-60 range during normal operation, however when bogus data is generated it's typically near the outer range of +/-120 or more, those packets would be a good candidate for dropping or clamping.
I've been running with this for several weeks now and it has significantly helped me stay sane even with a piece of junk Belkin KVM causing wild jitter each and every time I switch.
Lastly I'd like to note that my experience with Windows shows me that somehow the Microsoft PS/2 driver typically avoids this problem, but that may only be possible when running the mouse in a dumb-ed down PS/2 mode that Belkin recommends on their site.
|
122609 |
13-Nov-2003 |
phk |
Don't disable the TSC with statclock_disable.
|
122352 |
09-Nov-2003 |
tanimura |
- Implement selwakeuppri() which allows raising the priority of a thread being waken up. The thread waken up can run at a priority as high as after tsleep().
- Replace selwakeup()s with selwakeuppri()s and pass appropriate priorities.
- Add cv_broadcastpri() which raises the priority of the broadcast threads. Used by selwakeuppri() if collision occurs.
Not objected in: -arch, -current
|
121986 |
03-Nov-2003 |
jhb |
New APIC support code:
- The apic interrupt entry points have been rewritten so that each entry point can serve 32 different vectors. When the entry is executed, it uses one of the 32-bit ISR registers to determine which vector in its assigned range was triggered. Thus, the apic code can support 159 different interrupt vectors with only 5 entry points. - We now always to disable the local APIC to work around an errata in certain PPros and then re-enable it again if we decide to use the APICs to route interrupts. - We no longer map IO APICs or local APICs using special page table entries. Instead, we just use pmap_mapdev(). We also no longer export the virtual address of the local APIC as a global symbol to the rest of the system, but only in local_apic.c. To aid this, the APIC ID of each CPU is exported as a per-CPU variable. - Interrupt sources are provided for each intpin on each IO APIC. Currently, each source is given a unique interrupt vector meaning that PCI interrupts are not shared on most machines with an I/O APIC. That mapping for interrupt sources to interrupt vectors is up to the APIC enumerator driver however. - We no longer probe to see if we need to use mixed mode to route IRQ 0, instead we always use mixed mode to route IRQ 0 for now. This can be disabled via the 'NO_MIXED_MODE' kernel option. - The npx(4) driver now always probes to see if a built-in FPU is present since this test can now be performed with the new APIC code. However, an SMP kernel will panic if there is more than one CPU and a built-in FPU is not found. - PCI interrupts are now properly routed when using APICs to route interrupts, so remove the hack to psuedo-route interrupts when the intpin register was read. - The apic.h header was moved to apicreg.h and a new apicvar.h header that declares the APIs used by the new APIC code was added.
|
121704 |
29-Oct-2003 |
njl |
Fix a panic that occurs when resuming. For some reason, sc->cur_scp is NULL.
Submitted by: Andrew Thompson <andy@fud.org.nz>
|
121403 |
23-Oct-2003 |
peter |
Look at the equipment list for amd64 as well as i386 for autodetecting floppy drives in the absence of hints.
|
121215 |
18-Oct-2003 |
phk |
Eliminate use bio_blkno.
|
120465 |
26-Sep-2003 |
phk |
Change fb_attach() and fb_detach() to take a integer unit number rather than a dev_t.
All of the dev_t's passed were bogusly created with makedev()
|
120404 |
24-Sep-2003 |
imp |
Per TRB vote: restore the aquire_timer0 and associated goo. This will be gone in FreeBSD 6, so put BURN_BRIDGES around it. The TRB also felt that if something better comes along sooner, it can be used to replace this code.
Delayed by: BSDcon and subsequent disk crash.
|
120154 |
17-Sep-2003 |
phk |
Pick up softc from dev_t rathern than through newbus gymnastics.
|
120153 |
17-Sep-2003 |
phk |
Since it is static these days, there is no reason to uppercase the first letter of fdopen() to avoid nameclashing with other stuff.
|
119994 |
11-Sep-2003 |
phk |
Disable the use of cloning use in floppy and CD drivers.
This commit puts the relevant code snippets under #ifdef GONE_IN_5 (rather than #ifndef BURN_BRIDGES) thereby disabling the code now.
The code wil be entirely removed before 5.2 unless we find reasons why this would be a bad idea.
Approach suggested by: imp
|
119847 |
07-Sep-2003 |
bde |
clock.c: Quick fix for calling DELAY() for ddb input in some (atkbd-based) console drivers. ddb must not use any normal locks, but DELAY() normally calls getit() which needs clock_lock. One problem with using normal locks in ddb is that deadlock is possible, but deadlock on clock_lock is unlikely becaluse clock_lock is bogusly recursive, apparently just to hide the problem of ddb using it. The i8254 clock hardware has mostly write-only registers so it is important for it to use a lock that gives exclusive access. (atkbd hardware is also unfriendly to reentrant software but that problem is more local and already solved.) I mostly saw the symptoms of the bug caused by unlocking in getit() running cpu_unpend(). cpu_unpend() should not be called while in ddb and Debugger() calls for failing assertions about this caused a breakpoint within ddb.
ddb must also not call getit() because ddb may be being used to step through clock initialization code that has stopped or otherwise mangled the clock. If the clock is stopped, then getit() always returns the same value and DELAY() takes forever if it trusts getit().
The quick fix is implement DELAY(n) as (n * timer_freq / 1000000) inb(0x84)'s if ddb is active.
machdep.c: Don't permit recursion on clock_lock.
|
119772 |
05-Sep-2003 |
peter |
Clean up some antique stuff. We do not support Weitek FPUs etc, and never did.
|
119761 |
05-Sep-2003 |
phk |
Put the device cloning functions for disk-drivers under #ifndef BURN_BRIDGES.
For the floppy driver, use fdcontrol to manipulate density selection.
For the CD drivers, the 'a' and 'c' suffix is without actual effect and any applications insisting on it can be satisfied with a symlink: ln -s /dev/cd0 /dev/cd0a
Ongoing discussion may result in these pieces of code being removed before the 5-stable branch as opposed to after.
|
118987 |
16-Aug-2003 |
phk |
Give timecounters a numeric quality field.
A timecounter will be selected when registered if its quality is not negative and no less than the current timecounters.
Add a sysctl to report all available timecounters and their qualities.
Give the dummy timecounter a solid negative quality of minus a million.
Give the i8254 zero and the ACPI 1000.
The TSC gets 800, unless APM or SMP forces it negative.
Other timecounters default to zero quality and thereby retain current selection behaviour.
|
118956 |
15-Aug-2003 |
phk |
remove acquire_timer0() and release_timer0() and related stuff.
|
118550 |
06-Aug-2003 |
phk |
Dont initialize a TSC timecounter until we know if it is broken or not.
|
118292 |
01-Aug-2003 |
ambrisko |
Add printer support to puc(4) driver. - Move isa/ppc* to sys/dev/ppc (repo-copy) - Add an attachment method to ppc for puc - In puc we need to walk the chain of parents. Still to do, is to make ppc(4) & puc(4) work on other platforms. Testers wanted.
PR: 38372 (in spirit done differently) Verified by: Make universe (if I messed up a platform please fix)
|
117478 |
12-Jul-2003 |
mikeh |
Add support for the A4 Tech RFSW-35 mouse wheel. Probe is similar to 4D Plus.
PR: 44333
|
117337 |
08-Jul-2003 |
jhb |
- Make the isab devclass global to allow for multiple ISA bridge drivers. - Factor out code common to all ISA bridge drivers attach methods into a isab_attach() function. - Rename the PCI-ISA bridge driver's attach function to pci_isab_attach() and have it call isab_attach().
|
117302 |
07-Jul-2003 |
mikeh |
Reset the PSM aux device twice to help pierce through some KVM's to get the correct data from the attached mouse. Multiple resets should be harmless, but just in case, the second one is non-fatal and is just ignored.
|
117167 |
02-Jul-2003 |
jhb |
- Use the new resource_disabled() helper function to see if devices are disabled. - Change the apm driver to match the acpi driver's behavior by checking to see if the device is disabled in the identify routine instead of in the probe routine. This way if the device is disabled it is never created.
Note that a few places (ips(4), Alpha SMP) used "disable" instead of "disabled" for their hint names, and these hints must be changed to "disabled". If this is a big problem, resource_disabled() can always be changed to honor both names.
|
117117 |
01-Jul-2003 |
mikeh |
Add PnP PS/2 id for Dell Latitude X200.
PR: 48516 MFC after: 2 weeks
|
116434 |
16-Jun-2003 |
yar |
Force media autodetection if the device has lost its parameter table. Previously, any normal I/O on an fdc(4) device would fail with ENXIO if the device had been opened in non-blocking mode and then closed prior to the conventional access; that would last until the floppy disk was ejected and re-inserted to raise the unit attention condition.
Add a clarifying comment.
|
116432 |
16-Jun-2003 |
yar |
If in non-blocking mode, return EAGAIN instead of ENXIO on an I/O attempt. This is needed for consistency with the concept of the half-opened state of fdc(4).
PR: kern/52338
|
116408 |
15-Jun-2003 |
yar |
Always set bio_resid properly in fdstrategy(), as should every block device strategy routine. There was at least one evil consequence of not doing so: Some errors returned by fdstrategy() could be lost (EAGAIN, in particular.)
PR: kern/52338 (in the audit-trail) Discussed with: bde
|
116407 |
15-Jun-2003 |
yar |
Check whether the floppy type pointer has been set before trying to access floppy parameters through it.
Note: The DIOCGSECTORSIZE and DIOCGMEDIASIZE handlers withing fdioctl() couldn't be just moved to below the existing check for blocking mode because fd->ft can be non-NULL while still in non-blocking mode (fd->ft can be set with the FD_STYPE ioctl.)
PR: kern/52338 No MFC: Not applicable to STABLE
|
116181 |
11-Jun-2003 |
obrien |
Use __FBSDID().
|
115703 |
02-Jun-2003 |
obrien |
Use __FBSDID().
|
115569 |
31-May-2003 |
phk |
wrap macro in do {...} while(0)
|
115549 |
31-May-2003 |
phk |
Remove unused variable(s).
Found by: FlexeLint
|
115545 |
31-May-2003 |
phk |
Remove break after return;
Found by: FlexeLint
|
115544 |
31-May-2003 |
phk |
Don't rely on boolean expression evaluating to 1 or 0 by default.
Found by: FlexeLint
|
115543 |
31-May-2003 |
phk |
Remove unused variable(s). Mark a non-critical memoryleak with XXX comment
Found by: FlexeLint
|
115485 |
31-May-2003 |
phk |
Remove unused variable.
Found by: FlexeLint
|
115480 |
31-May-2003 |
phk |
Remove extra ';'
Found by: FlexeLint
|
114384 |
01-May-2003 |
peter |
Only use the pc bios stuff on i386's. I think this might even be unused there too.
|
114335 |
30-Apr-2003 |
peter |
Create a 'legacy' node for AMD64 as well as i386. While we'll never have to use it since all AMD64 machines are supposed to have acpi etc, I'm using it during development so I can avoid the acpi code for now. Yes, this is cheating.
|
114293 |
30-Apr-2003 |
markm |
Fix some easy, global, lint warnings. In most cases, this means making some local variables static. In a couple of cases, this means removing an unused variable.
|
114216 |
29-Apr-2003 |
kan |
Deprecate machine/limits.h in favor of new sys/limits.h. Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
113498 |
15-Apr-2003 |
mdodd |
Add a module version number.
|
112946 |
01-Apr-2003 |
phk |
Use bioq_flush() to drain a bio queue with a specific error code. Retain the mistake of not updating the devstat API for now.
Spell bioq_disksort() consistently with the remaining bioq_*().
#include <geom/geom_disk.h> where this is more appropriate.
|
112589 |
25-Mar-2003 |
mdodd |
Correct an argument to bus_alloc_resource().
|
112569 |
25-Mar-2003 |
jake |
- Add vm_paddr_t, a physical address type. This is required for systems where physical addresses larger than virtual addresses, such as i386s with PAE. - Use this to represent physical addresses in the MI vm system and in the i386 pmap code. This also changes the paddr parameter to d_mmap_t. - Fix printf formats to handle physical addresses >4G in the i386 memory detection code, and due to kvtop returning vm_paddr_t instead of u_long.
Note that this is a name change only; vm_paddr_t is still the same as vm_offset_t on all currently supported platforms.
Sponsored by: DARPA, Network Associates Laboratories Discussed with: re, phk (cdevsw change)
|
112551 |
24-Mar-2003 |
mdodd |
Use repo-copied files in sys/i386/bios.
|
112367 |
18-Mar-2003 |
phk |
Including <sys/stdint.h> is (almost?) universally only to be able to use %j in printfs, so put a newsted include in <sys/systm.h> where the printf prototype lives and save everybody else the trouble.
|
112334 |
17-Mar-2003 |
phk |
Fix a malloc() with no legal modeflag.
|
112260 |
15-Mar-2003 |
phk |
Call devstat_start_transaction_bio() instead of devstat_start_transaction()
|
112004 |
08-Mar-2003 |
phk |
Allocate the devstat structure with devstat_new_entry().
|
111815 |
03-Mar-2003 |
phk |
Gigacommit to improve device-driver source compatibility between branches:
Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values.
This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386.
Approved by: re(scottl)
|
111748 |
02-Mar-2003 |
des |
More low-hanging fruit: kill caddr_t in calls to wakeup(9) / [mt]sleep(9).
|
111462 |
25-Feb-2003 |
mux |
Cleanup of the d_mmap_t interface.
- Get rid of the useless atop() / pmap_phys_address() detour. The device mmap handlers must now give back the physical address without atop()'ing it. - Don't borrow the physical address of the mapping in the returned int. Now we properly pass a vm_offset_t * and expect it to be filled by the mmap handler when the mapping was successful. The mmap handler must now return 0 when successful, any other value is considered as an error. Previously, returning -1 was the only way to fail. This change thus accidentally fixes some devices which were bogusly returning errno constants which would have been considered as addresses by the device pager. - Garbage collect the poorly named pmap_phys_address() now that it's no longer used. - Convert all the d_mmap_t consumers to the new API.
I'm still not sure wheter we need a __FreeBSD_version bump for this, since and we didn't guarantee API/ABI stability until 5.1-RELEASE.
Discussed with: alc, phk, jake Reviewed by: peter Compile-tested on: LINT (i386), GENERIC (alpha and sparc64) Runtime-tested on: i386
|
110687 |
11-Feb-2003 |
phk |
Switch to using the TSC code in i386/i386/tsc.c.
|
110299 |
03-Feb-2003 |
phk |
Split the global timezone structure into two integer fields to prevent the compiler from optimizing assignments into byte-copy operations which might make access to the individual fields non-atomic.
Use the individual fields throughout, and don't bother locking them with Giant: it is no longer needed.
Inspired by: tjr
|
110296 |
03-Feb-2003 |
jake |
Split statclock into statclock and profclock, and made the method for driving statclock based on profhz when profiling is enabled MD, since most platforms don't use this anyway. This removes the need for statclock_process, whose only purpose was to subdivide profhz, and gets the profiling clock running outside of sched_lock on platforms that implement suswintr. Also changed the interface for starting and stopping the profiling clock to do just that, instead of changing the rate of statclock, since they can now be separate.
Reviewed by: jhb, tmm Tested on: i386, sparc64
|
110231 |
02-Feb-2003 |
nyan |
Correct error message.
|
110039 |
29-Jan-2003 |
phk |
Make tsc_freq a 64bit quantity.
Inspired by: http://www.theinquirer.net/?article=7481
|
109710 |
22-Jan-2003 |
marcel |
YAM: This id is found in a Sony Vaio GRX-670. When will this end?
Submitted by: Chuck McCrobie <mccrobie2000@yahoo.com>
|
109679 |
22-Jan-2003 |
hsu |
Add yet another Sony Vaio PS/2 mouse ID. This one is found on a VX88.
Submitted by: marcel
|
109626 |
21-Jan-2003 |
marcel |
Add yet another Sony Vaio PS/2 mouse ID. This one is found in a R505GL. The ACPI data for the mouse includes the compatibility ID, but we apparently don't make use of it.
|
109279 |
15-Jan-2003 |
mdodd |
Make the SC_NO_SUSPEND_VTYSWITCH kernel option available as a loader tunable and sysctl (hw.syscons.sc_no_suspend_vtswitch).
|
109269 |
15-Jan-2003 |
mdodd |
- GC a few more hand-rolled 'abs' macros. - GC a few hand-rolled min()/max() macros while I'm here.
|
109116 |
11-Jan-2003 |
joerg |
Bail out of fd_clone() if the parsed unit number doesn't match our expectation.
This solves the problem, where in a constellation with two (or more) drives, an attempt is made to access a device name for that device using a historic partition letter, like /dev/fd1c. This is supposed to create a symlink to the master device, but previously, the link was always created to /dev/fd0, even if the request was for fd1*.
|
108362 |
28-Dec-2002 |
phk |
Remove calls to cdevsw_add(), they are dreprecated on this branch now.
|
107576 |
04-Dec-2002 |
phk |
Use the correct value when writing the Day Of Week byte in the CMOS. The correct range is [1...7] with Sunday=1, but we have been writing [0...6] with Sunday=0.
The Soekris computers flagged the zero, zapped the date, so if you rebooted your soekris on a sunday, it would come up with a wrong date.
Bruce has a more extensive rework of this code, but we will stick with the minimalist fix for now.
Spotted by: Soren Kristensen <soren@soekris.com> Thanks to: Michael Sierchio <kudzu@tenebras.com>. Confirmed by: bde Approved by: re
|
106780 |
11-Nov-2002 |
mux |
Capitalize the first letter of device descriptions for consistency with the rest of the drivers.
|
105333 |
17-Oct-2002 |
jhb |
Fix compile with options SC_NO_SUSPEND_VTYSWITCH.
|
105328 |
17-Oct-2002 |
iwasaki |
1. Fix a comment. Locking _is_ needed (but not done). 2. Update a comment. We now restore much more than RTC updates and interrupts. 3. Order change. Stop interrupts by writing to RTC_STATUSB, restore rate bits for the interrupts by writing to RTC_STATUSA, then enable interrupts again. This seems to be done perfectly backwards in startrtclock(). Otherwise, the idea for this change was obtained from startrtclock(). 4. Don't stop the clock (RTCB_HALT). We only program some control bits and don't want to stop the clock. 5. (Not really related.) Add caveats to the comment about timer_restore(). The update is non-atomic since locking is not done.
On locking: 6. rtcin() and writertc() are locked() adequately by splhigh() in RELENG_4, but this locking is null in -current. 7. Doing things in the correct order in (3) combined with (6) is probably enough locking for rtcrestore() in RELENG_4. In -current, the writertc()'s race with rtcintr() unless the BIOS disables RTC interrupts.
Submitted by: bde (including commit message) MFC after: 1 week
|
105312 |
17-Oct-2002 |
iwasaki |
Add new syscons option SC_NO_SUSPEND_VTYSWITCH. This disables vty switch during suspend/resume.
|
105226 |
16-Oct-2002 |
phk |
Put an XXX: comment here to point out a couple of free() issues on pnp_read_bytes().
Spotted by: FlexeLint
|
105225 |
16-Oct-2002 |
phk |
No need to declare M_ISADEV here.
Spotted by: FlexeLint.
|
105220 |
16-Oct-2002 |
phk |
Properly put macro args in ().
Spotted by: FlexeLint.
|
105139 |
15-Oct-2002 |
jhb |
- Use __BUS_ACCESSOR() to define the ISA ivar accessor functions instead of homerolling our own version. - Rename the enum for memsize from ISA_IVAR_MSIZE to ISA_IVAR_MEMSIZE since using 'MSIZE' in the macro invocation of ISA_ACCESSOR() conflicts with the 'MSIZE' kernel option. The accessor function is still isa_get_msize().
|
104386 |
02-Oct-2002 |
phk |
Fix a probably rare and inconsequential memory leak.
Spotted by: FlexeLint
|
104211 |
30-Sep-2002 |
phk |
Add support for DIOCGMEDIASIZE and DIOCGSECTORSIZE. Remove all traces of disklabel.
Sponsored by: DARPA & NAI Labs.
|
104209 |
30-Sep-2002 |
phk |
Prefix private BIO commands with "FD" so people get a hint that they are in fact private.
Sponsored by: DARPA & NAI Labs.
|
104179 |
30-Sep-2002 |
phk |
Don't leak memory in case device_add_child_ordered() returns NULL.
Found by: FlexeLint
|
104142 |
29-Sep-2002 |
nyan |
Added some buggy PC-98 PnP cards support.
|
104094 |
28-Sep-2002 |
phk |
Be consistent about "static" functions: if the function is marked static in its prototype, mark it static at the definition too.
Inspired by: FlexeLint warning #512
|
104015 |
26-Sep-2002 |
jhb |
Argh, isa(4), eisa(4) and mca(4) now attach to legacy(4) instead of nexus(4) in the case of machines w/o equivalent bridges on a PCI bus.
Reported by: winter Pointy hat to: jhb
|
103733 |
21-Sep-2002 |
phk |
Fix a 3 year old oversight: Remove the #ifdef/#endif pair now that there is nothing between them anymore.
Spotted by: peter.
|
103675 |
20-Sep-2002 |
phk |
Make FreeBSD "struct disklabel" agnostic, step 311 of 723:
Rename diskerr() to disk_err() for naming consistency.
Drop the by now entirely useless struct disklabel argument.
Add a flag argument for new-line termination.
Fix a couple of printf-format-casts to %j instead of %l.
Correctly print the name of all bio commands.
Move the function from subr_disklabel.c to subr_disk.c, and from <sys/disklabel.h> to <sys/disk.h>.
Use the new disk_err() throughout, #include <sys/disk.h> as needed.
Bump __FreeBSD_version for the sake of the aac disk drivers #ifdefs.
Remove unused disklabel members of softc for aac, amr and mlx, which seem to originally have been intended for diskerr() use, but which only rotted and got Copy&Pasted at least two times to many.
Sponsored by: DARPA & NAI Labs.
|
103527 |
18-Sep-2002 |
iwasaki |
Restore status register A of RTC at resume time. This should fix the 'too many RTC interrupts and statclock seems broken after resume' problem.
MFC after: 1 week
|
103359 |
15-Sep-2002 |
phk |
Suitably shrink a comment so it applies again.
Submitted by: bde
|
103282 |
13-Sep-2002 |
phk |
Fix a bug were a struct bio was freed and certain members subsequently examined. Use biowait() instead of DIY.
|
103265 |
12-Sep-2002 |
joerg |
Pass the physical instead of the logical block number in bp->bio_pblkno. Otherwise, all formats not using 512 byte physical sectors got screwed.
|
102418 |
25-Aug-2002 |
iwasaki |
Add suspend/resume method to syscons. This switch the mode (text <-> graphics) by changing current vty during ACPI sleep/wakeup (maybe APM also).
|
102412 |
25-Aug-2002 |
charnier |
Replace various spelling with FALLTHROUGH which is lint()able
|
98618 |
22-Jun-2002 |
mp |
Clock frequencies reported by sysctl should be unsigned values. Discovered when machdep.tsc_freq returned a negative number on a 2.2GHz Xeon.
Submitted by: Brian Harrison <bharrison@ironport.com> Reviewed by: phk MFC after: 1 week
|
96611 |
14-May-2002 |
joerg |
After some comments from bde, rewrite the loops to avoid turning the previously used "micro-optimization" (count-down loop) into a pessimization. Now the loops are written in the more natural count-up form.
Also, while being there, i made the logic in out_fdc() similar to the logic in in_fdc(). The old implementation was a bit bogus anyway since it first tested the DIO bit and only afterwards the RQM bit. However, according to the description of the i82077, the DIO bit is only guaranteed to be valid once the RQM bit is set. Thus, the old implementatoin would have had the chance to misbehave on a controller that is implemented in accordance with the i82077 description (but is not bug-for-bug compatible).
MFC after: 3 days
|
96510 |
13-May-2002 |
joerg |
style(9) changes before further editing that region:
. add unnecessary parenthesis around return values . put body of an "if" statement onto a line of its own
|
96465 |
12-May-2002 |
joerg |
Hide the fd autoselection messages behind the bootverbose case so they stop bothering people on their consoles.
|
96459 |
12-May-2002 |
joerg |
Increase the PIO timeout to approximately the value it used to have before rev 1.229 (~ 100 ms). According to bde, some (old) broken hardware could require it. In order to make timing more accurate than what could be achieved with a loop around DELAY(1), increase loop timing after the initial ~ 1 ms.
Also, move the declaration of FDSTS_TIMEOUT out from fdreg.h into fd.c where it actually belongs to.
MFC after: 2 days
|
96361 |
10-May-2002 |
joerg |
Change the PIO loops from a hard counter into a loop that calls DELAY() in each cycle, with a tunable max cycle count defined in fdreg.h.
This is said to fix the problem on some Compaq hardware (and perhaps on other machines using the Natsemi PC87317 chip) where the fdc(4) driver failed to operate at all.
PR: kern/21397 Submitted by: Jung-uk Kim <jkim@niksun.com> MFC after: 3 days
|
95814 |
30-Apr-2002 |
phk |
Don't export timecounter structures under debug. with sysctl, they contain no truly interesting data anymore.
|
95489 |
26-Apr-2002 |
phk |
Remove the tc_update() function. Any frequency change to the timecounter will be used starting at the next second, which is good enough for sysctl purposes. If better adjustment is needed the NTP PLL should be used.
|
94275 |
09-Apr-2002 |
phk |
GC various bits and pieces of USERCONFIG from all over the place.
|
93689 |
02-Apr-2002 |
joerg |
When reading a UFS-style label from a floppy, don't attempt to use a "raw partition" of any kind since the floppy driver doesn't support UFS-style partitions at all.
Reported by: "Crist J. Clark" <crist.clark@attbi.com> Reviewed by: bde MFC after: 3 days
|
93593 |
01-Apr-2002 |
jhb |
Change the suser() API to take advantage of td_ucred as well as do a general cleanup of the API. The entire API now consists of two functions similar to the pre-KSE API. The suser() function takes a thread pointer as its only argument. The td_ucred member of this thread must be valid so the only valid thread pointers are curthread and a few kernel threads such as thread0. The suser_cred() function takes a pointer to a struct ucred as its first argument and an integer flag as its second argument. The flag is currently only used for the PRISON_ROOT flag.
Discussed on: smp@
|
93264 |
27-Mar-2002 |
dillon |
Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt disablement assumptions in kern_fork.c by adding another API call, cpu_critical_fork_exit(). Cleanup the td_savecrit field by moving it from MI to MD. Temporarily move cpu_critical*() from <arch>/include/cpufunc.h to <arch>/<arch>/critical.c (stage-2 will clean this up).
Implement interrupt deferral for i386 that allows interrupts to remain enabled inside critical sections. This also fixes an IPI interlock bug, and requires uses of icu_lock to be enclosed in a true interrupt disablement.
This is the stage-1 commit. Stage-2 will occur after stage-1 has stabilized, and will move cpu_critical*() into its own header file(s) + other things. This commit may break non-i386 architectures in trivial ways. This should be temporary.
Reviewed by: core Approved by: core
|
93238 |
26-Mar-2002 |
phk |
Push BIO_FORMAT into a local hack inside the floppy drivers where it belongs.
|
93021 |
23-Mar-2002 |
nsouch |
Restore the original copyright
|
92765 |
20-Mar-2002 |
alfred |
Remove __P.
|
92756 |
20-Mar-2002 |
alfred |
Remove __P.
|
92252 |
14-Mar-2002 |
alfred |
Fixes to make select/poll mpsafe.
Problem: selwakeup required calling pfind which would cause lock order reversals with the allproc_lock and the per-process filedesc lock. Solution: Instead of recording the pid of the select()'ing process into the selinfo structure, actually record a pointer to the thread. To avoid dereferencing a bad address all the selinfo structures that are in use by a thread are kept in a list hung off the thread (protected by sellock). When a selwakeup occurs the selinfo is removed from that threads list, it is also removed on the way out of select or poll where the thread will traverse its list removing all the selinfos from its own list.
Problem: Previously the PROC_LOCK was used to provide the mutual exclusion needed to ensure proper locking, this couldn't work because there was a single condvar used for select and poll and condvars can only be used with a single mutex. Solution: Introduce a global mutex 'sellock' which is used to provide mutual exclusion when recording events to wait on as well as performing notification when an event occurs.
Interesting note: schedlock is required to manipulate the per-thread TDF_SELECT flag, however if given its own field it would not need schedlock, also because TDF_SELECT is only manipulated under sellock one doesn't actually use schedlock for syncronization, only to protect against corruption.
Proc locks are no longer used in select/poll.
Portions contributed by: davidc
|
92000 |
10-Mar-2002 |
takawata |
Add SONY VAIO psm controller ISA-PnP ID.
|
91328 |
26-Feb-2002 |
dillon |
revert last commit temporarily due to whining on the lists.
|
91315 |
26-Feb-2002 |
dillon |
STAGE-1 of 3 commit - allow (but do not require) interrupts to remain enabled in critical sections and streamline critical_enter() and critical_exit().
This commit allows an architecture to leave interrupts enabled inside critical sections if it so wishes. Architectures that do not wish to do this are not effected by this change.
This commit implements the feature for the I386 architecture and provides a sysctl, debug.critical_mode, which defaults to 1 (use the feature). For now you can turn the sysctl on and off at any time in order to test the architectural changes or track down bugs.
This commit is just the first stage. Some areas of the code, specifically the MACHINE_CRITICAL_ENTER #ifdef'd code, is strictly temporary and will be cleaned up in the STAGE-2 commit when the critical_*() functions are moved entirely into MD files.
The following changes have been made:
* critical_enter() and critical_exit() for I386 now simply increment and decrement curthread->td_critnest. They no longer disable hard interrupts. When critical_exit() decrements the counter to 0 it effectively calls a routine to deal with whatever interrupts were deferred during the time the code was operating in a critical section.
Other architectures are unaffected.
* fork_exit() has been conditionalized to remove MD assumptions for the new code. Old code will still use the old MD assumptions in regards to hard interrupt disablement. In STAGE-2 this will be turned into a subroutine call into MD code rather then hardcoded in MI code.
The new code places the burden of entering the critical section in the trampoline code where it belongs.
* I386: interrupts are now enabled while we are in a critical section. The interrupt vector code has been adjusted to deal with the fact. If it detects that we are in a critical section it currently defers the interrupt by adding the appropriate bit to an interrupt mask.
* In order to accomplish the deferral, icu_lock is required. This is i386-specific. Thus icu_lock can only be obtained by mainline i386 code while interrupts are hard disabled. This change has been made.
* Because interrupts may or may not be hard disabled during a context switch, cpu_switch() can no longer simply assume that PSL_I will be in a consistent state. Therefore, it now saves and restores eflags.
* FAST INTERRUPT PROVISION. Fast interrupts are currently deferred. The intention is to eventually allow them to operate either while we are in a critical section or, if we are able to restrict the use of sched_lock, while we are not holding the sched_lock.
* ICU and APIC vector assembly for I386 cleaned up. The ICU code has been cleaned up to match the APIC code in regards to format and macro availability. Additionally, the code has been adjusted to deal with deferred interrupts.
* Deferred interrupts use a per-cpu boolean int_pending, and masks ipending, spending, and fpending. Being per-cpu variables it is not currently necessary to lock; bus cycles modifying them.
Note that the same mechanism will enable preemption to be incorporated as a true software interrupt without having to further hack up the critical nesting code.
* Note: the old critical_enter() code in kern/kern_switch.c is currently #ifdef to be compatible with both the old and new methodology. In STAGE-2 it will be moved entirely to MD code.
Performance issues:
One of the purposes of this commit is to enhance critical section performance, specifically to greatly reduce bus overhead to allow the critical section code to be used to protect per-cpu caches. These caches, such as Jeff's slab allocator work, can potentially operate very quickly making the effective savings of the new critical section code's performance very significant.
The second purpose of this commit is to allow architectures to enable certain interrupts while in a critical section. Specifically, the intention is to eventually allow certain FAST interrupts to operate rather then defer.
The third purpose of this commit is to begin to clean up the critical_enter()/critical_exit()/cpu_critical_enter()/ cpu_critical_exit() API which currently has serious cross pollution in MI code (in fork_exit() and ast() for example).
The fourth purpose of this commit is to provide a framework that allows kernel-preempting software interrupts to be implemented cleanly. This is currently used for two forward interrupts in I386. Other architectures will have the choice of using this infrastructure or building the functionality directly into critical_enter()/ critical_exit().
Finally, this commit is designed to greatly improve the flexibility of various architectures to manage critical section handling, software interrupts, preemption, and other highly integrated architecture-specific details.
|
91206 |
24-Feb-2002 |
alfred |
Fix style bugs: Missing `const' qualifier. Initialization in declaration.
Submitted by: mike
|
91202 |
24-Feb-2002 |
alfred |
Give a little more information as to why pnp configuration of a device may have failed.
Submitted by: Terry Lambert <tlambert2@mindspring.com>
|
91061 |
22-Feb-2002 |
phk |
Disksort will not "munge" requests, BIO_ORDERED or not, so remove use of BIO_ORDERED.
|
90234 |
05-Feb-2002 |
tanimura |
- Do not hang if the resource allocation fails. - Add another quirk entry of SB AWE64.
PR: kern/32530 Submitted by: Magnus Backstrom <b@etek.chalmers.se>
|
89980 |
30-Jan-2002 |
bde |
Don't include <isa/isavar.h> or compile code depending on it when isa is not configured. Including <isa/isavar.h> when it is not used is harmful as well as bogus, since it includes "isa_if.h" which is not generated when isa is not configured.
This was fixed in 1999 but was broken by unconditionalizing PNPBIOS.
|
88376 |
21-Dec-2001 |
tmm |
Use the new resource_list_print_type() function. Pass the bus device to isa_init() (this is needed for the sparc64 version).
|
88322 |
20-Dec-2001 |
jhb |
Introduce a standard name for the lock protecting an interrupt controller and it's associated state variables: icu_lock with the name "icu". This renames the imen_mtx for x86 SMP, but also uses the lock to protect access to the 8259 PIC on x86 UP. This also adds an appropriate lock to the various Alpha chipsets which fixes problems with Alpha SMP machines dropping interrupts with an SMP kernel.
|
88188 |
19-Dec-2001 |
sheldonh |
Add another PS2 PNP id.
PR: 32973 Submitted by: KT Sin <ktsin@acm.org>
|
88151 |
18-Dec-2001 |
joerg |
Change the test for _MACHINE_ARCH == i386 into #ifdef __i386__ since it otherwise breaks on the Alpha arch. I think this is wrong since i'd actually like to probe for a PC architecture, not for a particular CPU type. Anyway, now it's again the way it used to be.
|
88008 |
16-Dec-2001 |
nyan |
Remove PC98 code. This file is not used by PC98.
|
87992 |
15-Dec-2001 |
joerg |
Long promised major enhancement set for the floppy disk driver:
. The main device node now supports automatic density selection for commonly used media densities. So you can stuff your 1.44 MB and 720 KB media into your drive and just access /dev/fd0, no questions asked. It's all that easy, isn't it? :)
. Device density handling has been completely overhauled. The old way of hardwired kernel density knowledge is no longer there. Instead, the kernel now implements 16 subdevices per drive. The first subdevice uses automatic density selection, while the remaining 15 devices are freely programmable. They can be assigned an arbitrary name of the form /dev/fd[:digit]+.[:digit:]{1,4}, where the second number is meant to either implement device names that are mnemonic for their raw capacity (as it used to be), or they can alternatively be created as "anonymous" devices like fd0.1 through fd0.15, depending on the taste of the administrator. After creating a subdevice, it is initialized to the maximal native density of the respective drive type, so it needs to be customized for other densities by using fdcontrol(8). Pseudo-partition devices (fd0a through fd0h) are still supported as symlinks.
. The old hack to use flags 0x1 to always assume drive 0 were there is no longer supported; this is now supposed to be done by wiring the devices down from the loader via device flags. On IA32 architectures, the first two drives are looked up in the CMOS configuration records though. On PCMCIA (i. e., the Y-E Data controller of the Toshiba Libretto), a single drive is always assumed.
. Other specialities like disabling the FIFO and not probing the drive at boot-time are selected by per-controller or per-drive flags, too.
. Unit attentions (media has been changed) are supposed to be detected now; density autoselection only occurs after a unit attention. (Can be turned off by a per-drive flag, this will cause each Fdopen() to perform the autoselection.)
. FM floppies can be handled now (on controllers that actually support it -- not all do these days).
. Fdopen() can be told to avoid density selection by setting O_NONBLOCK; this leaves the descriptor in a half-opened state where only a few ioctls are accepted. This is necessary to run fdformat on a device that uses automatic density selection (since you cannot autoselect on an unformatted medium, obviously).
. Just differentiate between a plain old NE765 and the enhanced chips, but don't try more; the existing code was wrong and only misdetected the chips anyway.
BUGS and TODOs:
. All documentation update still needs to be done.
. Formatting not-so-standard format yields unpredictable results; i have yet to figure out why this happens. "Standard" formats like 720 and 1440 KB do work, however.
. rc scripts are needed to setup device nodes with nonstandard densities (like the old /dev/fdN.MMM we used to have).
. Obtaining device flags from the kernel environment doesn't work yet, thus currently only drives that are present in (IA32) CMOS are really detected. Someone who knows the odds and ends about device flags is needed here, i can't figure out what i'm doing wrong.
. 2.88 MB still needs to be done.
|
87599 |
10-Dec-2001 |
obrien |
Update to C99, s/__FUNCTION__/__func__/, also don't use ANSI string concatenation.
|
87387 |
05-Dec-2001 |
imp |
Moved to dev/joy
|
85835 |
01-Nov-2001 |
iwasaki |
Some fix for the recent apm module changes. - Now that apm loadable module can inform its existence to other kernel components (e.g. i386/isa/clock.c:startrtclock()'s TCS hack). - Exchange priority of SI_SUB_CPU and SI_SUB_KLD for above purpose. - Add simple arbitration mechanism for APM vs. ACPI. This prevents the kernel enables both of them. - Remove obsolete `#ifdef DEV_APM' related code. - Add abstracted interface for Powermanagement operations. Public apm(4) functions, such as apm_suspend(), should be replaced new interfaces. Currently only power_pm_suspend (successor of apm_suspend) is implemented.
Reviewed by: peter, arch@ and audit@
|
85365 |
23-Oct-2001 |
imp |
Break out the bus front ends into their own files. Rewrite sio_pccard_detach to use new siodetach. Add an extra arg to sioprobe to tell driver to probe/not probe the device for IRQs.
This incorporates most of Bruce's review material. I'm at a good checkpoint, but there will be more to come based on bde's further reviews.
Reviewed by: bde
|
85302 |
22-Oct-2001 |
imp |
First commit after a repo copy of isa/sio* -> dev/sio:
Move sio from isa/sio.c to dev/sio/sio.c. The next step is to break out the front end attachments, improve support for these parts on different busses, and maybe, if we're lucky, merging in pc98 support. It will also be MI and live in conf/files rather than files.*.
Approved by: bde Tested with: i386, pc98
|
85209 |
20-Oct-2001 |
jhb |
- Make the sio_inited handling more properly MP safe. - If we are booting with a serial console, then pass the MTX_QUIET flag to mtx_init of the sio lock as otherwise KTR_VERBOSE simply doesn't work.
|
84880 |
13-Oct-2001 |
yokota |
Hack for the "out-of-sync" error.
- Count the number of this error. - When the error is detected for the first time, the psm driver will throw few data bytes (up to entire packet size) and see if it can get back to sync. - If the error still persists, the psm driver disable/enable the mouse and see if it works. - If the error still persists and the count goes up to 20, the psm driver reset and reinitialize the mouse. The counter is reset to zero. - It also discards an incomplete data packet when the interval between two consequtive bytes are longer than pre-defined timeout (2 seconds). The last byte which arrived late will be regarded as the first byte of a new packet. This is louie's idea.
You may see the following error logs during the above operations:
"psmintr: delay too long; resetting byte count" "psmintr: out of sync (%04x != %04x)" "psmintr: discard a byte (%d)" "psmintr: re-enable the mouse" "psmintr: reset the mouse"
MFC after: 1 month
|
84721 |
09-Oct-2001 |
robert |
Remove an unneeded variable declaration and statement.
Approved by: jake
|
84407 |
03-Oct-2001 |
takawata |
Add PnP ID 'IBM3781' for TP240 mouse.
|
84103 |
29-Sep-2001 |
jlemon |
Add support for 28800 baud to sio.
PR: 30906 Submitted by: "Daniel O'Connor" <darius@chowder.dons.net.au>
|
84029 |
27-Sep-2001 |
jlemon |
Gate low level console output on mtx_lock_spin(&sio_lock), if the sio_lock has been initialized. This prevents the low level console output (kernel printf) from clobbering the sio settings if the system happens to be in the middle of comstart().
|
83931 |
25-Sep-2001 |
yokota |
Yet another turn of workaround for psm/ACPI/PnP BIOS problems currently experienced in -CURRENT.
This should fix the problem that the PS/2 mouse is detected twice if the acpi module is not loaded on some systems.
|
83855 |
23-Sep-2001 |
yokota |
Reinitialize the keyboard after the ACPI resume event.
I am not sure if this is absolutely necessary on all systems. Yet, there certainly are motherboards and notebook systems which require this, although there are other systems which just don't. I hope we shall know when to do this on which systems, as the development of our ACPI subsystem progresses... (I know we didn't need this for the APM resume.)
|
83832 |
22-Sep-2001 |
dfr |
Tweak so I can use a serial console on ia64.
|
83546 |
16-Sep-2001 |
murray |
Recognize two cheap PCI 16550 devices :
CyberSerial (1-port) 16550 Oxford Semiconductor Dual Port 16550
Sort the list of PCI devices while I'm here.
|
83504 |
15-Sep-2001 |
yokota |
Handle "identifier strings" right. Each ISA PnP card must have a mandatory "card" identifier string. A logical devices on the ISA PnP card may optionally have a "device" identifier string. Do not confuse them.
The "card" identifier string is assigned to a logical device as the default description string when the device is found. (If the "card" identifier string has not been found, use the EISA PnP ID string. Strictly speaking, this is an error.) We will override it when a "device" identifier string is found later.
|
83492 |
15-Sep-2001 |
yokota |
Refine ACPI/PnP BIOS probe/attach routines a bit.
- Add workaround for the problematic PnP BIOS which does not assign irq resource for the PS/2 mouse device node; if there is no irq assigned for the PS/2 mouse node, refer to device.hints for an irq number. If we still don't find an irq number in the hints database, use a hard-coded value. - Delete unused ivars. - Bit of clean up in probe/attach. - Add PnP ID for the PS/2 mouse port on some IBM ThinkPad models.
|
83366 |
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
83246 |
09-Sep-2001 |
dd |
Add a missing newline to an error message.
PR: 30436 Submitted by: Joerg Lehners <Lehners@Informatik.Uni-Oldenburg.DE>
|
83147 |
06-Sep-2001 |
yokota |
Update the atkbdc, atkbd, and psm drivers to probe/attach more cleanly and consistently in all APCI, PnP BIOS, and "hint" cases.
NOTE: this doesn't necessarily solve the problem that the PS/2 mouse is not detected after the recent ACPI update.
|
83051 |
05-Sep-2001 |
yokota |
Rework the ISA PnP driver pnp and the PnP resource parser to fix the following bugs.
- When constructing a resource configuration, respect the order in which resource descriptors are read, in order to establish the correct mapping between the descriptors and configuration registers. "Plug and Play ISA Specification, Version 1.0a", Sec 4.6.1, May 5, 1994. "Clarifications to the Plug and Play ISA Specification, Version 1.0a", Sec 6.2.1, Dec. 10, 1994.
- Do not ignore null (empty) descriptors; they are valid descriptors acting as filler. "Clarifications to the Plug and Play ISA Specification, Version 1.0a", Sec 6.2.1.
- Correctly set up logical device configuration registers for null resources. "Clarifications to the Plug and Play ISA Specification, Version 1.0a"
- Handle null resources properly in the resource allocator for the ISA bus.
|
82971 |
04-Sep-2001 |
iwasaki |
Reenable RTC interrupts after wakeup. Some laptops have a problem with system statistics monitoring tools (such as systat, vmstat...) because of stopping RTC interrupts generation. Restore all the timers (RTC and i8254) atomically.
Reviewed by: bde MFC after: 1 week
|
82863 |
03-Sep-2001 |
yokota |
Add a new field, id_config_attr to the struct isa_device. It will be later used to store some flags to control PnP device configurations.
|
82696 |
31-Aug-2001 |
murray |
Add ID for the Best Data Smart One 56SPS Voice modem.
PR: kern/24851 Submitted by: Daniel Rudy <dcrudy@aol.com>
|
82691 |
31-Aug-2001 |
murray |
Correct the ID for the ALS0120 PnP Joystick. It is different from the ALS0110.
PR: kern/22617 Submitted by: Mike Holling <myke@fks.bt>
|
82685 |
31-Aug-2001 |
murray |
Add OMRON ME5614ISA PnP modem.
PR: kern/22801 Submitted by: Ryuzo Okada <R.Okada@mm.neweb.ne.jp>
|
82682 |
31-Aug-2001 |
murray |
Add PCI device IDs for Kuotech dual port serial cards. Also give example of the flags needed to use these cards.
PR: kern/21242 Submitted by: Shigeki Moride <moride@portside.net>
|
82555 |
30-Aug-2001 |
msmith |
Add ACPI attachments.
|
82553 |
30-Aug-2001 |
msmith |
Safety-check against empty PnP ID lists.
|
81793 |
16-Aug-2001 |
imp |
Fix the so-called "half-baked-probe" code that I wrote a long time ago to properly clear the interrupt register on the no error case. Also, set the mcr register to zero when we find we can't support the chip.
This fixes the hang on sio driver attach problem in the new pci pccard code that some people have reported. At least on my machine. I'd like to get this into 4.4.
Submitted by: bde PR: kern/29742
MFC after: 1 day
|
81401 |
10-Aug-2001 |
julian |
DO NOT ALLOCATE 2+K OBJECTS ON THE KERNEL STACK!!!! found by: Getting my u-area overwritten
|
80040 |
20-Jul-2001 |
yokota |
Return consistent key action codes at key press and release events. Otherwise you would see unexpected results if shift or locking keys are defined to give different actions depending on other shift/locking keys' state.
Please keep the ukbd module and the kernel in sync, otherwise the USB keyboard won't work after this change. MFC after: 10 days
|
79730 |
14-Jul-2001 |
joerg |
Hrmpf. nyan's rev 1.25 commit to fdc.h crossed with my removal of it. Back-integrate his (PC98) changes into fd.c.
|
79729 |
14-Jul-2001 |
joerg |
Yet another large non-function change.
. Integrate fdc.h into fd.c, with the removal of ft(4) there's no longer a reason to scatter things across two files.
. Sanitize comments. Convert them into the style(9)-recommended multi-line form, make them sentences where apprpriate, etc.
. Declare all functions on top, and declare them in the order they appear in the file. This order is totally chaotic, but Bruce convinced me that reordering the file wouldn't make it better either.
. Kill a `possibly uninitialized' warning (only seen with -O2) in fd_read_status().
. Make the comments at return (0|1) statements in fdstate() consistent.
. Nuke a ``keep the compiler happy'' dummy return at the end of fdstate(), gcc is smart enough to detect that it would never be reached anyway.
|
79704 |
14-Jul-2001 |
nyan |
- Refine pc98 supports. - Use bus_space stuff. - Rename FDO_* -> FDC_* (obtained from NetBSD/pc98)
|
79491 |
09-Jul-2001 |
joerg |
Log when the user is turning debugging on/off. Also sanitize the TRACE* macros a bit so they syntactically behave like single C statements (even inside in `if' statement).
Submitted by: des
|
79490 |
09-Jul-2001 |
joerg |
Hmpf, remove two variables that got unused by rev 1.214.
|
79489 |
09-Jul-2001 |
joerg |
Ouch, calculate correctly. With 300 rpm and 25 retries, it's 5 seconds till timeout.
|
79488 |
09-Jul-2001 |
joerg |
Remove parts of rev 1.211 again: do not delete our children iff they haven't been probed successfully. It's a known bug that ISA hints processing instantiates those devices, and prematurely killing them has other unwanted side-effects.
|
79487 |
09-Jul-2001 |
joerg |
As des' example shows us, DMA overruns could happen in a situation where they will never succeed. Add a stop-gap measure that will at least eventually timeout the operation instead of retrying it indefinately.
MFC after: 1 month
|
79431 |
08-Jul-2001 |
joerg |
Another large patchset from Bruce.
Despite of a few cosmetic things like adding ``irritating silly parentheses'' around all return values, this mainly improves FDC reset handling by no longer gratuitously resetting the FDC all the time (which causes it to lose the notion of the current track) but only in case of errors, and it sanitizes the block and offset calculations in fdstrategy() and fdstate(). Some additional cleanup added by me, in particular the large switch in fdstate() now always uses return to break out, and no branch falls off the end of the switch statement anymore. Per Bruce's suggestion, removed M_NOWAIT from the malloc()s to simplify things.
Submitted by: bde (mostly)
|
79254 |
04-Jul-2001 |
joerg |
More cleanup when detaching. Clone device entries will now be destroyed properly (otherwise bad things would happen after a clone dev had been created, and the module was kldunloaded). Allocated children that have not successfully probed are being deleted again (otherwise fd0 and fd1 have always been allocated, even if only fd0 was acutally present, and fd1 even survived kldunloading the module).
Still, kldunloading leaves remnants of the previously existing devices intact. Why doesn't it destroy all the devices? As a consequence, since dev->descr now points into no longer allocated memory, the system panics deep inside printf(9) when running devinfo(1) after kldunloading the module. Ideas sought...
Also, when kldloading the module on a hints-populated isab0, this bus somehow has already created an fdc0 entry (a dummy) so the load attempt fails and will register fdc1 instead. What are those dummy entries for? Loading the module from the bootloader works, and it can be unloaded an re-loaded then later.
|
79023 |
30-Jun-2001 |
yokota |
Remove the resume method. It is not necessary any more, because keyboard drivers have it now... MFC after: 4 weeks
|
79022 |
30-Jun-2001 |
yokota |
Add the device resume method to keyboard drivers. MFC after: 4 weeks
|
78971 |
29-Jun-2001 |
joerg |
Use the new-born BIO_CMD1 instead of fudging a bio_flag value for reading the sector ID.
Based on numerous comments made by Bruce, rewrite a good part of the old fdformat() function, and merge it with fdreadid() into a single unified fdmisccmd() function. Various style and a couple of more serious bugs fixed there.
While i was at it, i also fixed the long-standing "TODO: don't allocate buffer on stack." in fdcioctl(), fixed a number of style bugs there, and finally implemented the FD_DEBUG ioctl command that has been advertised in <sys/fdcio.h> (formerly <machine/ioctl_fd.h>) for almost seven years now. ;-)
Submitted by: bde (a lot of fixes for fdformat())
|
78955 |
29-Jun-2001 |
joerg |
This change slipped through hidden in a CVS conflict. Logically belongs to the previous commit (fix resource deallocation).
|
78953 |
29-Jun-2001 |
joerg |
First stab at fixing resource deallocation, and implementing fdc(4) as a KLD. Still doesn't work well except in the PCMCIA case (now if only pccardd(8) could load and unload drivers dynamically...). Mainly, it tries to find fdc0 on the PCI bus for whatever obscure reasons, but i need someone who understands driver(9) to fix this. However, it's at least already better than before, and i'm tired of maintaining too many private changes in my tree, given the large patches bde submitted. :)
Idea of a KLD triggered by: Michael Reifenberger <root@nihil.plaut.de>
|
78927 |
28-Jun-2001 |
joerg |
Merge in parts of a larger patchset i received from Bruce. Untested by now (except of a compile test), but i believe this to contain no actual functional changes.
. Fix the copyright of the Regents i accidentally broke in rev 1.197 (although only a very small part of the original driver survived at all...).
. Bump MAX_CYLINDER since some obscure formats really use more than 80 cylinders.
. Correctly handle BIO_FORMAT which used to be a bitmask but is now a BIO command of its own.
. Numerous stylistic fixes.
Submitted by: bde
|
78856 |
26-Jun-2001 |
joerg |
Implement a new ioctl command for floppies: FD_READID
Reads one sector ID field from a given track. Useful for analyzing floppies.
|
78854 |
26-Jun-2001 |
joerg |
Some more cosmetics: kill another couple of K&R function definitions that survived from old days, fix style of return type in fdcpio(), kill old Emacs hints that are no longer working that way anyway.
|
78646 |
23-Jun-2001 |
nsouch |
Convert inb/outb to bus_space.
Submitted by: jcm@FreeBSD-uk.eu.org
|
78514 |
20-Jun-2001 |
joerg |
Cosmetics:
. staticize out_fdc(), there's no longer an ft(4) driver sharing its use . remove in_fdc(), has been used by ft(4) last time, long since obsoleted by fd_in() . move the declaration of fd_clone() to where most of the other function declarations are . de-__P()ify fd_clone(), it's been the only _P()ed function in the entire file
|
78504 |
20-Jun-2001 |
iedowse |
The serial console break-to-debugger support only functioned while the console device was open. At other times, the interrupts that are used to detect the break signal or ~^B sequence were disabled, so these events would not be noticed until the next open (e.g. the next kernel printf). This was mainly a problem while there was no getty running on the console, such as during bootup or shutdown.
For serial consoles with break-to-debugger support, we now enable the generation of interrupts at attach time, and we leave them enabled while the device is closed.
Reviewed by: bde (I've since made chages as per his suggestions)
|
78262 |
15-Jun-2001 |
peter |
Fix warning: 163: passing arg 4 of `resource_string_value' from incompatible pointer type
|
78135 |
12-Jun-2001 |
peter |
Hints overhaul: - Replace some very poorly thought out API hacks that should have been fixed a long while ago. - Provide some much more flexible search functions (resource_find_*()) - Use strings for storage instead of an outgrowth of the rather inconvenient temporary ioconf table from config(). We already had a fallback to using strings before malloc/vm was running anyway.
|
78058 |
11-Jun-2001 |
joerg |
Cosmetics:
. remove stale comments and a stale #define (from the old days of ft(4)) . make MAX_SEC_SIZE (used in isa_dmainit()) a #define
. fix a typo in a string . use 0 as the blocksize in devstat_add_entry(), since the actual blocksize is unknown (devstat(9) suggests to use 0 in that case)
|
77800 |
06-Jun-2001 |
joerg |
Nuke the various poorly maintained copies of ioctl_fd.h. The file is not machine-dependant, thus it has been moved out (repo-copied) into <sys/fdcio.h>.
|
77788 |
05-Jun-2001 |
joerg |
Make the FDC (state machine) state an enum, as opposed to an int abusing a bunch of #defines, for clarity and better debugging support.
|
77750 |
05-Jun-2001 |
imp |
Close the line displine on detach. Lots of folks have submittd this, and I think bde even reviewed it once.
Also, change the name of ActionTEC pat to more generic Lucent Kermit chip. Add stub for Xircom card. Add cardbus attachment too.
|
77726 |
04-Jun-2001 |
joerg |
Move out the files from src/sys/isa/ic/ to src/sys/dev/ic/, so they can be made userland-visible as <dev/ic/...>. Also, those files are not supposed to contain any bus-specific details at all, so placing them under .../isa/ has been a misnomer from the beginning.
The files in src/sys/dev/ic/ have been repo-copied from their old location (this commit is a forced null commit there to record this message).
|
77663 |
03-Jun-2001 |
joerg |
Fix my email address. I accidentally cut'npasted the wrong (old) hostname laste time.
|
77596 |
01-Jun-2001 |
imp |
The orm device. This device gobbles up the Option ROMs in the ISA memory I/O space. Otherwise, our resource allocation system might mistakenly assign pccard, plug and play devices or other things addresses that conflict with ROMs.
I cleaned up his code a little from the submited driver: style(9) issues, commentary on why something that looks incorrect really is correct. Also noted that while a checksum field is defined for the ROMs, enough common hardware neglects it to make it not worthwhile checking.
Submitted by: Nikolai Saoukh <nms@otdel-1.org> PR: 22078
|
77222 |
26-May-2001 |
sanpei |
add Dualmode Zoom/FaxModem 56K (internal) Model 2919
PR: kern/27476 Submitted by: Eric Beyer <lnxfrk@earthlink.net>
|
77167 |
25-May-2001 |
phk |
Don't lie to diskerr() now that it listens to us.
|
76869 |
20-May-2001 |
sanpei |
Add SmartLink 5634PCV SurfRider
PR: kern/26952 Submitted by: Simon Dick <simond@irrelevant.org>
|
76650 |
15-May-2001 |
jhb |
Remove unneeded includes of sys/ipl.h and machine/ipl.h.
|
76588 |
14-May-2001 |
joerg |
Implement a few more floppy ioctl commands and IO options, namely:
. FD_CLRERR clears the error counter, thus re-enables kernel error printf()s,
. FD_GSTAT obtains the last FDC operation state, if any,
. FDOPT_NOERRLOG (temporarily) turns off kernel printf() floppy error logging,
. FDOPT_NOERROR makes the kernel ignore an FDC error, thus can enable the transfer of an erroneous sector to the user application
All options are being cleared on (last) close.
Prime consumer of the last features will be fdread(1), to be committed shortly.
(FD_CLRERR should be wired into fdcontrol(8), but then fdcontrol(8) needs a major rewrite anyway.)
|
76322 |
06-May-2001 |
phk |
Actually biofinish(struct bio *, struct devstat *, int error) is more general than the bioerror().
Most of this patch is generated by scripts.
|
76166 |
01-May-2001 |
markm |
Undo part of the tangle of having sys/lock.h and sys/mutex.h included in other "system" header files.
Also help the deprecation of lockmgr.h by making it a sub-include of sys/lock.h and removing sys/lockmgr.h form kernel .c files.
Sort sys/*.h includes where possible in affected files.
OK'ed by: bde (with reservations)
|
76089 |
28-Apr-2001 |
jhb |
Add in a missing call to forward_hardclock() in the SMP case.
Submitted by: bde
|
76078 |
27-Apr-2001 |
jhb |
Overhaul of the SMP code. Several portions of the SMP kernel support have been made machine independent and various other adjustments have been made to support Alpha SMP.
- It splits the per-process portions of hardclock() and statclock() off into hardclock_process() and statclock_process() respectively. hardclock() and statclock() call the *_process() functions for the current process so that UP systems will run as before. For SMP systems, it is simply necessary to ensure that all other processors execute the *_process() functions when the main clock functions are triggered on one CPU by an interrupt. For the alpha 4100, clock interrupts are delievered in a staggered broadcast fashion, so we simply call hardclock/statclock on the boot CPU and call the *_process() functions on the secondaries. For x86, we call statclock and hardclock as usual and then call forward_hardclock/statclock in the MD code to send an IPI to cause the AP's to execute forwared_hardclock/statclock which then call the *_process() functions. - forward_signal() and forward_roundrobin() have been reworked to be MI and to involve less hackery. Now the cpu doing the forward sets any flags, etc. and sends a very simple IPI_AST to the other cpu(s). AST IPIs now just basically return so that they can execute ast() and don't bother with setting the astpending or needresched flags themselves. This also removes the loop in forward_signal() as sched_lock closes the race condition that the loop worked around. - need_resched(), resched_wanted() and clear_resched() have been changed to take a process to act on rather than assuming curproc so that they can be used to implement forward_roundrobin() as described above. - Various other SMP variables have been moved to a MI subr_smp.c and a new header sys/smp.h declares MI SMP variables and API's. The IPI API's from machine/ipl.h have moved to machine/smp.h which is included by sys/smp.h. - The globaldata_register() and globaldata_find() functions as well as the SLIST of globaldata structures has become MI and moved into subr_smp.c. Also, the globaldata list is only available if SMP support is compiled in.
Reviewed by: jake, peter Looked over by: eivind
|
74914 |
28-Mar-2001 |
jhb |
Catch up to header include changes: - <sys/mutex.h> now requires <sys/systm.h> - <sys/mutex.h> and <sys/sx.h> now require <sys/lock.h>
|
74810 |
26-Mar-2001 |
phk |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
74378 |
17-Mar-2001 |
nyan |
Always call resource_int_value function for getting portsize and msize. It was not set resource size (portsize/msize) if resource address was set.
This is MFC candidate.
|
73961 |
07-Mar-2001 |
sanpei |
Add GVC1601 - Rockwell V.34 Plug & Play Modem
PR: kern/25204 Submitted by: Victor Ivanov <v0rbiz@icon.bg>
|
73960 |
07-Mar-2001 |
sanpei |
Add IOD0081 - I-O DATA DEVICE,INC. IFML-560
PR: kern/25173 Submitted by: Yohsuke Fujikawa <yohsuke@mx2.nisiq.net>
|
73381 |
03-Mar-2001 |
markm |
Harvest interrupt entropy off the floppy disk controller.
|
72678 |
19-Feb-2001 |
bde |
Fixed style bugs in clock.c rev.1.164 and cpu.h rev.1.52-1.53 -- declare tsc_present in the right places (together with other variables of the same linkage), and don't use messy ifdefs just to avoid exporting it in some cases.
|
72521 |
15-Feb-2001 |
jlemon |
Extend kqueue down to the device layer.
Backwards compatible approach suggested by: peter
|
72358 |
11-Feb-2001 |
markm |
RIP <machine/lock.h>.
Some things needed bits of <i386/include/lock.h> - cy.c now has its own (only) copy of the COM_(UN)LOCK() macros, and IMASK_(UN)LOCK() has been moved to <i386/include/apic.h> (AKA <machine/apic.h>). Reviewed by: jhb
|
72240 |
09-Feb-2001 |
jhb |
Catch up to changes to inthand_add().
|
72238 |
09-Feb-2001 |
jhb |
- Catch up to the new swi API changes: - Use swi_* function names. - Use void * to hold cookies to handlers instead of struct intrhand *. - In sio.c, use 'driver_name' instead of "sio" as the name of the driver lock to minimize diffs with cy(4).
|
72200 |
09-Feb-2001 |
bmilekic |
Change and clean the mutex lock interface.
mtx_enter(lock, type) becomes:
mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks) mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized)
similarily, for releasing a lock, we now have:
mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN. We change the caller interface for the two different types of locks because the semantics are entirely different for each case, and this makes it explicitly clear and, at the same time, it rids us of the extra `type' argument.
The enter->lock and exit->unlock change has been made with the idea that we're "locking data" and not "entering locked code" in mind.
Further, remove all additional "flags" previously passed to the lock acquire/release routines with the exception of two:
MTX_QUIET and MTX_NOSWITCH
The functionality of these flags is preserved and they can be passed to the lock/unlock routines by calling the corresponding wrappers:
mtx_{lock, unlock}_flags(lock, flag(s)) and mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN locks, respectively.
Re-inline some lock acq/rel code; in the sleep lock case, we only inline the _obtain_lock()s in order to ensure that the inlined code fits into a cache line. In the spin lock case, we inline recursion and actually only perform a function call if we need to spin. This change has been made with the idea that we generally tend to avoid spin locks and that also the spin locks that we do have and are heavily used (i.e. sched_lock) do recurse, and therefore in an effort to reduce function call overhead for some architectures (such as alpha), we inline recursion for this case.
Create a new malloc type for the witness code and retire from using the M_DEV type. The new type is called M_WITNESS and is only declared if WITNESS is enabled.
Begin cleaning up some machdep/mutex.h code - specifically updated the "optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently need those.
Finally, caught up to the interface changes in all sys code.
Contributors: jake, jhb, jasone (in no particular order)
|
71880 |
31-Jan-2001 |
peter |
Remove count for NSIO. The only places it was used it were incorrect. (alpha-gdbstub.c got sync'ed up a bit with the i386 version)
|
71797 |
29-Jan-2001 |
peter |
Convert mca (microchannel bus support) from something that we count (bogus) to something that we test for the presence of.
|
71622 |
25-Jan-2001 |
nsouch |
Consider that the chipset may be in ECP mode (from BIOS settings) even if mode PS/2 is forced with bootflags. As a matter of fact, chipsets needs some extra configuration for accessing PS/2 mode from ECP. The current patch is only relevant for generic chipsets since specific code is supposed to deal with this during detection.
|
71320 |
21-Jan-2001 |
jasone |
Remove MUTEX_DECLARE() and MTX_COLD. Instead, postpone full mutex initialization until after malloc() is safe to call, then iterate through all mutexes and complete their initialization.
This change is necessary in order to avoid some circular bootstrapping dependencies.
|
71262 |
19-Jan-2001 |
peter |
Convert apm from a bogus 'count' into a plain option. Clean out some other cruft from the files.alpha and files.ia64 that were related to this.
|
70834 |
09-Jan-2001 |
wollman |
select() DKI is now in <sys/selinfo.h>.
|
70356 |
26-Dec-2000 |
tanimura |
Add OZO8008 - Zoom (33.6k Modem).
PR: kern/23336 Submitted by: Paulo Menezes <root@samurai.dee.uc.pt>
|
70201 |
19-Dec-2000 |
nsouch |
Fix the PR. Getting a dma channel equal to 0 remains a problem though.
PR: i386/22568
|
70174 |
18-Dec-2000 |
jhb |
Convert the sio driver to use a spin mutex instead of a s_lock. This is going to hurt sio(4) performance for the time being. As we get closer to release and have more of the kernel unlocked we can come back to doing arcane optimizations to workaround the limitations of the sio hardware.
|
69942 |
12-Dec-2000 |
msmith |
It's possible for an ISA bus to be hung off an EISA bridge, so we need to reflect that here.
|
69781 |
08-Dec-2000 |
dwmalone |
Convert more malloc+bzero to malloc+M_ZERO.
Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
|
69774 |
08-Dec-2000 |
phk |
Staticize some malloc M_ instances.
|
69521 |
02-Dec-2000 |
markm |
Namespace cleanup. Remove some #includes in favour of an explicit declaration.
Asked for by: bde
|
69439 |
01-Dec-2000 |
yokota |
- Add a hack for "psmintr: out of sync.." This is NOT a fix, but a hack! Add `flags 0x8000' to the psm driver to enable it. The psm driver will try to get out of out-of-sync situation by disabling the mouse and immediately enable it again.
If you are seeing this out-of-sync problem because of an incompetent(?!) KVM switch, this hack will NOT be good for you. However, if you are occasionally seeing the problem because of lost mouse interrupt, this might help.
|
69438 |
01-Dec-2000 |
yokota |
- Slightly rearrnage IntelliMouse Explorer and Logitech MouseMan+ identification routines for efficiency. No functional change.
|
69295 |
28-Nov-2000 |
mdodd |
Reduce code duplication by using the GET_RESOURCE_LIST bus method and related generic resource_list management functions.
I'll deal with the EISA bits later.
Not objected to by: new-bus
|
69210 |
26-Nov-2000 |
phk |
Make diskerr() always log with printf.
|
69155 |
25-Nov-2000 |
peter |
GC some defunct prototypes
|
68411 |
07-Nov-2000 |
msmith |
Ignore resources with a size of 0, as these are disabled (and we don't deal with them properly elsewhere).
Submitted by: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
|
67759 |
28-Oct-2000 |
phk |
Revert two experimental changes which escaped from my devel machine.
|
67708 |
27-Oct-2000 |
phk |
Convert all users of fldoff() to offsetof(). fldoff() is bad because it only takes a struct tag which makes it impossible to use unions, typedefs etc.
Define __offsetof() in <machine/ansi.h>
Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h>
Remove myriad of local offsetof() definitions.
Remove includes of <stddef.h> in kernel code.
NB: Kernelcode should *never* include from /usr/include !
Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API.
Deprecate <struct.h> with a warning. The warning turns into an error on 01-12-2000 and the file gets removed entirely on 01-01-2001.
Paritials reviews by: various. Significant brucifications by: bde
|
67551 |
25-Oct-2000 |
jhb |
- Overhaul the software interrupt code to use interrupt threads for each type of software interrupt. Roughly, what used to be a bit in spending now maps to a swi thread. Each thread can have multiple handlers, just like a hardware interrupt thread. - Instead of using a bitmask of pending interrupts, we schedule the specific software interrupt thread to run, so spending, NSWI, and the shandlers array are no longer needed. We can now have an arbitrary number of software interrupt threads. When you register a software interrupt thread via sinthand_add(), you get back a struct intrhand that you pass to sched_swi() when you wish to schedule your swi thread to run. - Convert the name of 'struct intrec' to 'struct intrhand' as it is a bit more intuitive. Also, prefix all the members of struct intrhand with 'ih_'. - Make swi_net() a MI function since there is now no point in it being MD.
Submitted by: cp
|
67442 |
22-Oct-2000 |
nyan |
Moved prototypes of isa_alloc_resourcev() and isa_load_resourcev() to isa/isavar.h, and added needed includes.
|
67356 |
20-Oct-2000 |
jhb |
- machine/mutex.h -> sys/mutex.h - machine/ipl.h -> sys/ipl.h - Use MUTEX_DECLARE() for clock_lock
|
67164 |
15-Oct-2000 |
phk |
Remove unneeded #include <machine/clock.h>
|
67155 |
15-Oct-2000 |
peter |
Repeat after me: I will test *before* commit, not after.... *blush*
|
67153 |
15-Oct-2000 |
peter |
Untangle some resource matching loops that were getting on my nerves and seemed to be getting cut/pasted to places they shouldn't be.
|
66920 |
10-Oct-2000 |
tanimura |
Add MAE0021 - Jetstream Int V.90 56k Voice Series 2.
PR: i386/19920 Submitted by: Peter Ortner <port@iname.com>
|
66860 |
09-Oct-2000 |
phk |
Initiate deorbit burn sequence for <machine/mouse.h>.
Replace all in-tree uses with <sys/mouse.h> which repo-copied a few moments ago from src/sys/i386/include/mouse.h by peter. This is also the appropriate fix for exo-tree sources.
Put warnings in <machine/mouse.h> to discourage use. November 15th 2000 the warnings will be converted to errors. January 15th 2001 the <machine/mouse.h> files will be removed.
|
66840 |
09-Oct-2000 |
msmith |
Resolve the inconsistency between "the number of resources of a particular kind we can manage in a set of configurations" and "the number of resources of a particular kind that can be programmed into an ISA PnP adapter".
Submitted by: Motomichi Matsuzaki <mzaki@e-mail.ne.jp> Submitted by: Hirokazu WATANABE <gwna@geocities.co.jp>
|
66834 |
08-Oct-2000 |
phk |
Initiate deorbit burn sequence for <machine/console.h>.
Replace all in-tree uses with necessary subset of <sys/{fb,kb,cons}io.h>. This is also the appropriate fix for exo-tree sources.
Put warnings in <machine/console.h> to discourage use. November 15th 2000 the warnings will be converted to errors. January 15th 2001 the <machine/console.h> files will be removed.
|
66822 |
08-Oct-2000 |
bde |
Use schedsofttty() again so that siopoll() gets scheduled as designed (SMPng casualty in rev.1.308 with wrong fix in rev.1.310).
|
66716 |
06-Oct-2000 |
jhb |
- Change fast interrupts on x86 to push a full interrupt frame and to return through doreti to handle ast's. This is necessary for the clock interrupts to work properly. - Change the clock interrupts on the x86 to be fast instead of threaded. This is needed because both hardclock() and statclock() need to run in the context of the current process, not in a separate thread context. - Kill the prevproc hack as it is no longer needed. - We really need Giant when we call psignal(), but we don't want to block during the clock interrupt. Instead, use two p_flag's in the proc struct to mark the current process as having a pending SIGVTALRM or a SIGPROF and let them be delivered during ast() when hardclock() has finished running. - Remove CLKF_BASEPRI, which was #ifdef'd out on the x86 anyways. It was broken on the x86 if it was turned on since cpl is gone. It's only use was to bogusly run softclock() directly during hardclock() rather than scheduling an SWI. - Remove the COM_LOCK simplelock and replace it with a clock_lock spin mutex. Since the spin mutex already handles disabling/restoring interrupts appropriately, this also lets us axe all the *_intr() fu. - Back out the hacks in the APIC_IO x86 cpu_initclocks() code to use temporary fast interrupts for the APIC trial. - Add two new process flags P_ALRMPEND and P_PROFPEND to mark the pending signals in hardclock() that are to be delivered in ast().
Submitted by: jakeb (making statclock safe in a fast interrupt) Submitted by: cp (concept of delaying signals until ast())
|
66698 |
05-Oct-2000 |
jhb |
- Heavyweight interrupt threads on the alpha for device I/O interrupts. - Make softinterrupts (SWI's) almost completely MI, and divorce them completely from the x86 hardware interrupt code. - The ihandlers array is now gone. Instead, there is a MI shandlers array that just contains SWI handlers. - Most of the former machine/ipl.h files have moved to a new sys/ipl.h. - Stub out all the spl*() functions on all architectures.
Submitted by: dfr
|
66230 |
22-Sep-2000 |
jhb |
- Wrap functions and variables that aren't used in the alpha console probe with #ifndef __alpha__/#endif - Add function prototypes for functions used during the alpha console probe and gdb port setup inside of #ifdef __alpha__/#endif.
|
66229 |
22-Sep-2000 |
jhb |
Fix several 64-bit-ism warnings due to sizeof(int) != sizeof(void *) on the alpha.
|
65822 |
13-Sep-2000 |
jhb |
- Remove the inthand2_t type and use the equivalent driver_intr_t type from newbus for referencing device interrupt handlers. - Move the 'struct intrec' type which describes interrupt sources into sys/interrupt.h instead of making it just be a x86 structure. - Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd' and 'struct intrec' - Move the code to translate new-bus interrupt flags into an interrupt thread priority out of the x86 nexus code and into a MI ithread_priority() function in sys/kern/kern_intr.c. - Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and sys/pci/pci_compat.c.
|
65714 |
11-Sep-2000 |
jhb |
Add a nasty hack to get remote kernel gdb working from ddb. ddb would complain before that a suitable gdb port had not been setup because gdbdev was NULL. This abuses the fact that the gdb port is hard-coded to the address normally assigned to sio1 and thus hard-codes in sio1 as the gdb port. Yuck.
|
65605 |
08-Sep-2000 |
jhb |
Back out my previous commit as well as some SMPng changes to revert the siosetwater() function to its previous behavior of always disabling interrupts and obtaining the com_lock before returning.
Requested by: bde (in principle)
|
65602 |
08-Sep-2000 |
grog |
siointr1: Schedule soft interrupt when needed. This fixes the "no interrupt" problem people had seen with SMPng.
Approved by: jasone Tested by: bp
|
65596 |
08-Sep-2000 |
jhb |
Fix a problem where we would recursively try to get the com lock within comparam when calling siosetwater().
Noticed by: bp
|
65557 |
07-Sep-2000 |
jasone |
Major update to the way synchronization is done in the kernel. Highlights include:
* Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.)
* Per-CPU idle processes.
* Interrupts are run in their own separate kernel threads and can be preempted (i386 only).
Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh
|
65469 |
05-Sep-2000 |
sheldonh |
Add ZTIA001 - Zoom Internal V90 Faxmodem.
PR: 21028 Submitted by: Glenn Johnson <glennpj@charter.net>
|
65438 |
04-Sep-2000 |
sheldonh |
Add Boca K56Flex PnP modem.
PR: 21000 Submitted by: Andrew Sparrow <spadger@best.com>
|
65374 |
02-Sep-2000 |
phk |
Avoid the modules madness I inadvertently introduced by making the cloning infrastructure standard in kern_conf. Modules are now the same with or without devfs support.
If you need to detect if devfs is present, in modules or elsewhere, check the integer variable "devfs_present".
This happily removes an ugly hack from kern/vfs_conf.c.
This forces a rename of the eventhandler and the standard clone helper function.
Include <sys/eventhandler.h> in <sys/conf.h>: it's a helper #include like <sys/queue.h>
Remove all #includes of opt_devfs.h they no longer matter.
|
65176 |
28-Aug-2000 |
dfr |
* Completely rewrite the alpha busspace to hide the implementation from the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly.
With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
|
65131 |
27-Aug-2000 |
phk |
Call destroy_dev() when sio devices go away.
|
65045 |
24-Aug-2000 |
yokota |
Add spltty()/splx() in the watchdog timer routine.
|
64880 |
20-Aug-2000 |
phk |
Remove all traces of Julians DEVFS (incl from kern/subr_diskslice.c)
Remove old DEVFS support fields from dev_t.
Make uid, gid & mode members of dev_t and set them in make_dev().
Use correct uid, gid & mode in make_dev in disk minilayer.
Add support for registering alias names for a dev_t using the new function make_dev_alias(). These will show up as symlinks in DEVFS.
Use makedev() rather than make_dev() for MFSs magic devices to prevent DEVFS from noticing this abuse.
Add a field for DEVFS inode number in dev_t.
Add new DEVFS in fs/devfs.
Add devfs cloning to: disk minilayer (ie: ad(4), sd(4), cd(4) etc etc) md(4), tun(4), bpf(4), fd(4)
If DEVFS add -d flag to /sbin/inits args to make it mount devfs.
Add commented out DEVFS to GENERIC
|
64688 |
15-Aug-2000 |
peter |
Add another USR modem.
PR: 20621 Submitted by: Masanori Taira <mtaira@logicaleffect.com>
|
64453 |
09-Aug-2000 |
n_hibma |
Avoid a '"fd" is usurping ...' message.
PR: 20348 Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
|
64031 |
30-Jul-2000 |
phk |
Allow use of TSC even if APM is compiled in but disabled.
|
63982 |
28-Jul-2000 |
peter |
Fix a warning re: a potentially unused pccard helper function
|
63951 |
28-Jul-2000 |
yokota |
Fix GENERIC_MOUSE_ENTRY.
Submitted by: Graham Wheeler <gram@cequrux.com> and gibbs
|
63746 |
22-Jul-2000 |
yokota |
This is yet another attempt to fix "psmintr out of sync.." problems.
- Properly protect the watchdog timer routine. - Relocate the sync check statement so that we don't see too many error messages.
|
63624 |
20-Jul-2000 |
dfr |
Add support for the PC87303 chipset (found on Miata alphas) and add support for relocating the port address if the isa hints specify a different address from the address the chipset currently has.
Submitted by: Andrew M. Miklic <miklic@ibm.net>
|
63403 |
18-Jul-2000 |
dfr |
Add smc37c935 chipset support and clean up the code which tries to allocate a short port range in some alpha configurations.
Submitted by: "Andrew M. Miklic" <miklic@udlkern.fc.hp.com>, Mark Abene <phiber@radicalmedia.com>
|
62987 |
12-Jul-2000 |
jhb |
Don't assume that any ISA device that fails to probe is a PnP device, instead, use the bus_print_child_* functions to display the error message. Also, since this is more of a warning than an error, hide it behind bootverbose.
Similarly, if isa_assign_resources() fails to allocate resources to a device, use bus_print_child_header() instead of device_printf(), and display the resources that could not be allocated if bootverbose is true.
Approved by: msmith Help from: mdodd
|
62947 |
11-Jul-2000 |
tanimura |
Finally merge newmidi. (I had been busy for my own research activity until the last weekend)
Supported devices:
SB Midi Port (sbc + midi) SB OPL3 (sbc + midi) 16550 UART (midi, needs a trick in your hint) CS461x Midi Port (csa + midi)
OSS-compatible sequencer (seq)
Supported playing software:
playmidi (We definitely need more)
Notes:
/dev/midistat now reports installed midi drivers. /dev/sndstat reports only pcm drivers. We need the new name(pcmstat?).
EMU8000(SB AWE) does not sound yet but does get probed so that the OPL3 synth on an AWE card works.
TODO:
MSS/PCI bridge drivers Midi-tty interface to support general serial devices Modules
|
62573 |
04-Jul-2000 |
phk |
Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.
Pointed out by: bde
|
62454 |
03-Jul-2000 |
phk |
Style police catches up with rev 1.26 of src/sys/sys/sysctl.h:
Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our sources:
-sysctl_vm_zone SYSCTL_HANDLER_ARGS +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
|
62225 |
28-Jun-2000 |
peter |
Add device_identify methods so that we do not need the hint.sc.0.at=isa and hint.vga.0.at=isa hints in order for these to probe/attach.
|
62061 |
25-Jun-2000 |
dfr |
Only print the diagnostic about extended I/O ports if bootverbose is true.
|
62060 |
25-Jun-2000 |
dfr |
Don't record an irq mask if its empty - it confuses the resource allocator.
|
62059 |
25-Jun-2000 |
dfr |
Replace the unknown driver with a nomatch method in the isa driver. This allows ISA PnP drivers to be dynamically loaded after the kernel has booted.
|
61994 |
23-Jun-2000 |
msmith |
Add PnP probe methods to some common AT hardware drivers. In each case, the PnP probe is merely a stub as we make assumptions about some of this hardware before we have probed it.
Since these devices (with the exception of the speaker) are 'standard', suppress output in the !bootverbose case to clean up the probe messages somewhat.
|
61704 |
15-Jun-2000 |
peter |
This is a temporary bandaid to get vidconsole working again without options USERCONFIG being present. Due to the lack of early boot hints neither sio or sc would succeed the console probe. If USERCONFIG was active, there was a second cninit() after userconfig had run and that happened to make the console selection work. If you left out USERCONFIG, you would end up with no console at all. :-(
This needs a proper fix, especially when sc looses the "at isa" hint. But for now, this works.
|
61649 |
14-Jun-2000 |
ps |
Add option ALT_BREAK_TO_DEBUGGER.
Implement the Solaris way to break into DDB over a serial console instead of sending a break. Sending the character sequence CR ~ ^b will break the kernel into DDB (if DDB is enabled).
Reviewed by: peter
|
61126 |
31-May-2000 |
bde |
Add SWI_TQ_MASK to all interrupt masks except SWI_CLOCK_MASK. Use a new macro SWI_LOW_MASK to give the mask for low priority SWIs instead of hard-coding this mask as SWI_CLOCK_MASK.
Reviewed by: dfr
|
60947 |
26-May-2000 |
tanimura |
Add SUP1670 - Supra 336i V+ Intl. Since we update the PnP IDs more frequently than the core part of the sio driver, it might be good to move the PnP IDs to sio_isapnp.h or something like that.
PR: i386/18828 Submitted by: J.P. King <jpk28@cam.ac.uk>
|
60938 |
26-May-2000 |
jake |
Back out the previous change to the queue(3) interface. It was not discussed and should probably not happen.
Requested by: msmith and others
|
60833 |
23-May-2000 |
jake |
Change the way that the queue(3) structures are declared; don't assume that the type argument to *_HEAD and *_ENTRY is a struct.
Suggested by: phk Reviewed by: phk Approved by: mdodd
|
60708 |
19-May-2000 |
tanimura |
Add RSS0262 - 5614Jx3[G] V90+K56Flex Modem.
PR: kern/18168 Submitted by: Tony Voet <voet@engineer.com>
|
60696 |
19-May-2000 |
tanimura |
Add ACH2012 - 5634BTS 56K Video Ready Modem.
PR: kern/17351 Submitted by: Eric D. Futch <efutch@nyct.net>
|
60674 |
18-May-2000 |
tanimura |
Add a couple of new PnP IDs.
o OZO800f - Zoom 2812 (56k Modem) PR: kern/18603 Submitted by: Matt Loschert <loschert@servint.com>
o DAV0336 - DAVICOM 336PNP MODEM PR: kern/18608 Submitted by: Martijn Plak <martijn@be3.com>
|
60544 |
14-May-2000 |
dfr |
Port ppc driver to alpha.
Submitted by: Andrew M. Miklic <miklic@ibm.net>
|
60471 |
12-May-2000 |
nyan |
Use bus_space stuff except where it needs high performance.
Reviewed by: bde
|
60374 |
11-May-2000 |
nyan |
Supported PC-98.
|
60073 |
06-May-2000 |
phk |
Step down a level and issue format requests with a struct bio instead of a struct buf.
|
60041 |
05-May-2000 |
phk |
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>.
<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on the subject of nested includes.
Diskdrivers and similar stuff below specfs::strategy() should no longer need to include <sys/buf.> unless they need caching of data.
Still a few bogus uses of struct buf to track down.
Repocopy by: peter
|
59888 |
02-May-2000 |
tanimura |
Add the logical ID of FUJITSU Modem 33600 PNP/I2.
PR: kern/18257 Submitted by: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
|
59783 |
30-Apr-2000 |
bde |
Fixed the type of some ivar access functions. Ivars have type uintptr_t, not u_long. On i386's with 64-bit longs, returning u_longs indirectly in (more than) the space reserved for uintptr_t's tended to corrupt the previous frame pointer in the stack frame, so it was not easy to debug. The type mismatches are hidden by the bogus cast in DEVMETHOD().
|
59760 |
29-Apr-2000 |
phk |
Remove unneeded #include <sys/kernel.h>
|
59491 |
22-Apr-2000 |
wollman |
Enable PnP attachment for parallel port controllers.
PR: 17495
|
59391 |
19-Apr-2000 |
phk |
Remove ~25 unneeded #include <sys/conf.h> Remove ~60 unneeded #include <sys/malloc.h>
|
59249 |
15-Apr-2000 |
phk |
Complete the bio/buf divorce for all code below devfs::strategy
Exceptions: Vinum untouched. This means that it cannot be compiled. Greg Lehey is on the case.
CCD not converted yet, casts to struct buf (still safe)
atapi-cd casts to struct buf to examine B_PHYS
|
59093 |
08-Apr-2000 |
dfr |
* Factor out the object system from new-bus so that it can be used by non-device code. * Re-implement the method dispatch to improve efficiency. The new system takes about 40ns for a method dispatch on a 300Mhz PII which is only 10ns slower than a direct function call on the same hardware.
This changes the new-bus ABI slightly so make sure you re-compile any driver modules which you use.
|
59002 |
04-Apr-2000 |
dfr |
Allow MAXDEP dependants, not MAXDEP-1.
|
58934 |
02-Apr-2000 |
phk |
Move B_ERROR flag to b_ioflags and call it BIO_ERROR.
(Much of this done by script)
Move B_ORDERED flag to b_ioflags and call it BIO_ORDERED.
Move b_pblkno and b_iodone_chain to struct bio while we transition, they will be obsoleted once bio structs chain/stack.
Add bio_queue field for struct bio aware disksort.
Address a lot of stylistic issues brought up by bde.
|
58923 |
02-Apr-2000 |
yokota |
- Add temporary workaround to fool some "clever" KVM switch products which think they know the IntelliMouse 4-byte packet and believe, wrongly, that any other protocols use 3-byte packets. - Update a couple of comment lines for A4 Tech mice.
|
58885 |
01-Apr-2000 |
imp |
Add support for pci modems. ONLY CONTROLLER BASED MODEMS. This doesn't support winmodems, softmodems, hcf or any other modem that relies on the host to do any sort of soft control for any aspect of the modem's function. There are two modems known to work: 3COM FaxModem PCI. ActionTec 56k VoiceMessaging PCI Modem and the following modem might work Multitech PCI FaxModem (not sure about this) and the serial pci cards might work too. I have neither these hardware items so I can't add support for them.
|
58873 |
31-Mar-2000 |
dfr |
Don't use too-large stack buffers.
Submitted by: Nikolai Saoukh <nms@otdel-1.org>
|
58872 |
31-Mar-2000 |
yokota |
- Fix SC_ALT_MOUSE_IMAGE; don't blink the mouse cursor. - Fix non-destructive, underline text cursor.
|
58850 |
31-Mar-2000 |
dfr |
Fixes to parse more complex ISA PnP configurations.
Submitted by: Nikolai Saoukh <nms@Brigada-A.Ethereal.RU> PR: kern/17219
|
58848 |
31-Mar-2000 |
peter |
Recognize USR3050 "U.S. Robotics 56K FAX INT" fax modem.
PR: 17702 Submitted by: Scot W. Hetzel <hetzels@westbend.net>
|
58847 |
31-Mar-2000 |
dfr |
Fix PnP memory range calculations.
Submitted by: Nikolai Saoukh <nms@Brigada-A.Ethereal.RU> PR: kern/16712
|
58575 |
25-Mar-2000 |
phk |
Fix floppy driver after my isadma changes.
|
58377 |
20-Mar-2000 |
phk |
Isolate the Timecounter internals in their own two files.
Make the public interface more systematically named.
Remove the alternate method, it doesn't do any good, only ruins performance.
Add counters to profile the usage of the 8 access functions.
Apply the beer-ware to my code.
The weird +/- counts are caused by two repocopies behind the scenes: kern/kern_clock.c -> kern/kern_tc.c sys/time.h -> sys/timetc.h (thanks peter!)
|
58349 |
20-Mar-2000 |
phk |
Rename the existing BUF_STRATEGY() to DEV_STRATEGY()
substitute BUF_WRITE(foo) for VOP_BWRITE(foo->b_vp, foo)
substitute BUF_STRATEGY(foo) for VOP_STRATEGY(foo->b_vp, foo)
This patch is machine generated except for the ccd.c and buf.h parts.
|
58345 |
20-Mar-2000 |
phk |
Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new field in struct buf: b_iocmd. The b_iocmd is enforced to have exactly one bit set.
B_WRITE was bogusly defined as zero giving rise to obvious coding mistakes.
Also eliminate the redundant struct buf flag B_CALL, it can just as efficiently be done by comparing b_iodone to NULL.
Should you get a panic or drop into the debugger, complaining about "b_iocmd", don't continue. It is likely to write on your disk where it should have been reading.
This change is a step in the direction towards a stackable BIO capability.
A lot of this patch were machine generated (Thanks to style(9) compliance!)
Vinum users: Greg has not had time to test this yet, be careful.
|
58272 |
19-Mar-2000 |
yokota |
Missing pieces of the last commit ;-(
|
58271 |
19-Mar-2000 |
yokota |
- Properly keep track of I/O port resources. - Use bus_space_read/write() to access the ports.
|
58240 |
18-Mar-2000 |
joerg |
Make the Y-E Data PCMCIA floppy of the Toshiba Libretto work under -current. It doesn't work yet as stable as the 3.x/PAO version of the driver does, however, i get occasional `FDC direction bit not set' and other weird messages, but it basically works at least.
The old (defunct) #ifdef FDC_YE stuff has been eliminated completely now, PCMCIA-FDC specific functions have been implemented differently where needed.
Unfortunately, due to the fact that the traditional PeeCee FDC with its funny non-contiguous register space (one register for WD1003 harddisk controllers is interleaved into the FDC register set), and Peter's subsequent changes involving two different bus space handles for normal FDCs, the changes required for the Y-E stuff are more complex than i'd love them to be. I've done my best to keep the logic for normal FDCs intact.
Since the Y-E FDC seems to lose interrupts after a FDC reset sometimes, i've also replaced the timeout logic in fd_turnoff() to generate an artificial pseudo interrupt in case of a timeout while the drive has still outstanding transfers waiting. This avoids the total starvation of the driver that could be observed with highly damaged media under 3.x/PAO. This part of the patch has been revied by bde previously.
I've fixed a number of occasions where previous commits have been missing the encapuslation of ISA DMA related functions inside FDC_NODMA checks.
I've added one call to SET_BCDR() during preparation of the format floppy operation. Floppy formatting has been totally broken before in 3.x/PAO (garbage ID fields have been written to the medium, causing `wrong cylinder' errors upon media reading). This is just black magic, i don't have the slightes idea _why_ this needs to be but just copied over the hack that has been used by the PAO folks in the normal read/write case anyway.
The entired device_busy() stuff seems to be pointless to me. In any case, i had to add device_unbusy() calls symmetrical to the device_busy() calls, otherwise the PCMCIA floppy driver could never be deactivated. (As it used to be, it caused a `mark the device busier and busier' situation.) IMHO, all block device drivers should be marked busy based on active buffers still waiting for the driver, so the device_unbusy() calls should probably go to biodone(). Only one other driver (whose name escapes me at the moment) uses device_busy() calls at all, so i question the value of all this...
I think this entire `device busy' logic simply doesn't fit for PCMCIA &al. It cannot be the decision of some piece of kernel software to declare a device `busy by now, you can't remove it', when the actual physical power of removing it is the user pulling the card. The kernel simply has to cope with the removal, however busy the device might have been by the time of the removal, period. Perhaps a force flag needs to be added?
Upon inserting the card a second time, i get:
WARNING: "fd" is usurping "fd"'s cdevsw[] WARNING: "fd" is usurping "fd"'s bmaj
I suspect this is related to the XXX comment at the call to cdevsw_add(). Does anybody know what the correct way is to cleanup this?
|
58230 |
18-Mar-2000 |
yokota |
- Add Support for the following PS/2 mice: - Microsoft IntelliMouse Explorer: 2 buttons on top, 2 side buttons and a wheel which also acts as the middle button. The mouse is recognized as "IntelliMouse Explorer". - Genius NetScroll Optical: 2 buttons on top, 2 side buttons and a wheel which also acts as the middle button. The mouse is recognized as "NetMouse/NetScroll Optical". - MouseSystems SmartScroll Mouse (OEM from Genius?): 3 buttons on top, 1 side button and a wheel. The mouse is recognized as Genius "NetScroll". - IBM ScrollPoint: 2 buttons on top and a stick between the buttons. The stick can perform "horizontal scroll" in W*ndows environment. The horizontal movement of the stick is detected. It is currently mapped to the Z axis movement in the same way as the first wheel. The mouse is recognized as "MouseMan+", as it is considered to be a variation of MouseMan. - A4 Tech 4D and 4D+ mice. These mice have two wheels! The movement of the second wheel is reported as the Z axis movement in the same way as the first wheel. These mice are recognized as "4D Mouse" and "4D+ Mouse". - Tweak IntelliMouse support code a bit so that less-than-compatible wheel mice can work properly with the psm driver. - Add driver configuration flags which correspond to the kernel options PSM_HOOKRESUME and PSM_RESETAFTERSUSPEND, so that we don't need to recompile the kernel when we need these functions. - Properly keep track of the irq resource. - Add a watchdog timer in case interrupts are lost (experimental). - Add `detach' function (experimental).
|
57973 |
13-Mar-2000 |
phk |
Stop isadma from abusing the B_READ, B_RAW and B_WRITE flags.
Define ISADMA_{READ,WRITE,RAW} macros with the same numeric values as the B_{READ,WRITE,RAW} and use them instead throughout.
|
57915 |
11-Mar-2000 |
imp |
Fix crashes on card eject for pccard modems. We check for NULL when we get the com address. If so, we go ahead and return. Bruce thinks there's a bug in the pccard layer that it terminates devices with extreme prejustice rather than letting them deside for themselves when to terminate (and he's likely right). This fix doesn't change that, but instead works around it by checking for NULL pointers at more places than before.
The detach routine still calls functions at interrupt level that aren't reentrant. In theory this could cause a problem, but none showed up in practice. Future versions should correct this problem, likely by making the detach process a thread/process at the pccard level. NEWCARD will do this, and the current pccard layer should likely be modified to that as well, should it live long enough.
A few style nits of the same form that were in my original patch sent off to bde were also fixed as part of this process. Mostly use of !ptr and return ENOPARENS.
This should prevent a crash on suspend with an active ppp link as well, but that wasn't tested.
Reviewed by: bde Approved by: jkh
|
57769 |
05-Mar-2000 |
peter |
Recognize another modem, "PMC2430 - Pace 56 Voice Internal Modem"
Submitted by: Mark Ovens <mark@ukug.uk.freebsd.org>
|
57680 |
02-Mar-2000 |
peter |
Fix two more problems with freeing the softc data manually. subr_bus.c is responsible for this and this will lead to malloc 'freeing already free' type panics. One was in the probe code, the other was in the pccard eject? code.
Not explicitly approved by: jkh (but the first is fallout from subr_bus.c rev 1.54 which was an approved commit, the second is the same problem)
|
57677 |
01-Mar-2000 |
peter |
Don't free(sc) before returning an error from probe, it does not "belong" to us, subr_bus.c will free it. This bug (panic: freeing already free) was exposed by kern/subr_bus.c rev 1.54
Not explicitly approved by: jkh (but this is a showstopper and fallout of the above approved change)
|
57481 |
25-Feb-2000 |
yokota |
Do not add children (atkbd and psm) if they are disabled.
Approved by: jkh
|
57368 |
21-Feb-2000 |
gj |
Newbus-ify the USR Sportster TA Intern driver.
Enable the driver in sys/conf/files.i386.
In isa/isavar.h increase ISA_NPORT from 32 to 50. This is required because this brain-damaged card maps 49 (!) port ranges. This does not have a negative impact because this value only specifies the maximum number of entries in a linked list and not the size of an array which is allocated in all drivers.
The register/fifo access routines were not newbus-ified because 1) I knew that the old code worked and is simpler and more efficient 2) the if_ed driver does something similar and 3) the newbus macros collapse to inb/outb anyway.
Reviewed and tested by: hm Approved by: jkh
|
57234 |
15-Feb-2000 |
bde |
Fixed regressions in rev.1.274: 1) Non-AST4 multiport cards were broken by bypassing the code that changes `idev' to the multiport master device. 2) AST4 multiport cards apparently were broken by inverting the test for the master device having an irq. 3) Error handling for nonexistent master devices was broken by removing a check for a null pointer. 4) `int' error codes returned by bus_get_resource() were assigned directly to the boolean variable com->no_irq. Probably harmless, since the boolean is implemented as a u_char.
Submitted by: part 1) by Chris Radek <cradek@in221.inetnebr.com> part 2) by yokota Approved by: jkh
|
57132 |
11-Feb-2000 |
msmith |
When allocating resources in the following cases:
- trying for a fit for a PnP configuration from a device - soaking up resources from a configuration that were not allocated by the driver
do not attempt to activate them. Only a device driver that is aware of the nature of the resource and its suitability can be certain that activating a resource, particularly a memory resource, is a safe thing to do.
This was prompted by the discovery that many systems report all physical memory through a PNP0c02 device; activating this resource maps all physical memory into the kernel's virtual space, either blowing out the kernel pagetable or in the worst case causing a panic in pmap_mapdev() if the system has too much physical memory.
Authorised by: jkh Reviewed by: dfr
|
56836 |
29-Jan-2000 |
peter |
Use config's conditional compilation rather than using #ifdefs that make modular compilation harder. I'm doing this because people seem to like cut/pasting examples of bad practices in existing code.
|
56818 |
29-Jan-2000 |
peter |
Remove #include "ppc.h" and #if NPPC > 0 - this is always true as it is 'optional ppc' in conf/files*
|
56788 |
29-Jan-2000 |
bde |
"Completed" the previous fix. Return ENOMEM on memory allocation failure in sioattach(), not ENXIO. Free resources before returning early in sioprobe() and sioattach().
|
56617 |
25-Jan-2000 |
dfr |
* Don't use ivars to access resources, bus_set/get_resource is much better. * First approximation of making this work on alpha (not working yet).
|
56461 |
23-Jan-2000 |
n_hibma |
Return ENXIO on error, not 0. Seems to have been skipped when converting to newbus.
Reviewed by: bde
|
56229 |
18-Jan-2000 |
peter |
Add another four device ID's for isa pnp modems. The USR's seem to use the same vendor and logical ID. The rest I am not sure whether they are vendor or logical, but it won't hurt if I've put a vendor ID here as merely will not match. These came from the old sio-pnp code, hence the uncertainty about which ID it is.
|
56227 |
18-Jan-2000 |
peter |
Add ADS7182 as a known Joystick.
|
56214 |
18-Jan-2000 |
msmith |
Don't mark unallocated resources as active; the goal is to reserve them, and there may be a good reason for them being unallocated (eg. they're nonsensical or not useful). The goal here is simply to reserve them against accidental use by other code.
|
55948 |
14-Jan-2000 |
peter |
Don't do device_set_desc() until after checking for PnP probes. Otherwise things like sound cards can get called "Parallel port". A note to the unwary; the isa-pnp devices in the system are probed like PCI - each device ID is passed to *all* isa probe routines to find the best match. If the driver is not prepared to deal with this, it must abort in this scenario or it will try and claim all PnP devices.
|
55939 |
14-Jan-2000 |
nsouch |
Port of ppbus standalone framework to the newbus system.
Note1: the correct interrupt level is invoked correctly for each driver. For this purpose, drivers request the bus before being able to call BUS_SETUP_INTR and BUS_TEARDOWN_INTR call is forced by the ppbus core when drivers release it. Thus, when BUS_SETUP_INTR is called at ppbus driver level, ppbus checks that the caller owns the bus and stores the interrupt handler cookie (in order to unregister it later).
Printing is impossible while plip link is up is still TRUE. vpo (ZIP driver) and lpt are make in such a way that using the ZIP and printing concurrently is permitted is also TRUE.
Note2: specific chipset detection is not done by default. PPC_PROBE_CHIPSET is now needed to force chipset detection. If set, the flags 0x40 still avoid detection at boot.
Port of the pcf(4) driver to the newbus system (was previously directly connected to the rootbus and attached by a bogus pcf_isa_probe function).
|
55868 |
13-Jan-2000 |
gallatin |
Make this compile on alpha
|
55849 |
12-Jan-2000 |
yokota |
Make the mouse cursor char code configurable via the CONS_MOUSECTL ioctl.
By popular demand.
|
55823 |
11-Jan-2000 |
yokota |
Add a new mechanism, cndbctl(), to tell the console driver that ddb is entered. Don't refer to `in_Debugger' to see if we are in the debugger. (The variable used to be static in Debugger() and wasn't updated if ddb is entered via traps and panic anyway.)
- Don't refer to `in_Debugger'. - Add `db_active' to i386/i386/db_interface.d (as in alpha/alpha/db_interface.c). - Remove cnpollc() stub from ddb/db_input.c. - Add the dbctl function to syscons, pcvt, and sio. (The function for pcvt and sio is noop at the moment.)
Jointly developed by: bde and me
(The final version was tweaked by me and not reviewed by bde. Thus, if there is any error in this commit, that is entirely of mine, not his.)
Some changes were obtained from: NetBSD
|
55675 |
09-Jan-2000 |
bde |
Removed some more vestiges of ft.
Fixed some style bugs.
|
55591 |
08-Jan-2000 |
peter |
Futher cleanup.. "device_print_prettyname(); printf()" -> device_printf() It seems that the IDE system uses 0x3f6 for itself, which conflicts with fdc's default 0x3f0-3f7 allocation range. Sigh. Work around this. Use bus_set_resource() rather than allocating specific areas, it makes the code a little cleaner.
Based on work by: dfr
|
55498 |
06-Jan-2000 |
imp |
Merge most of FDC_YE into the mainline driver. o Rename FDC_PCMCIA to FDC_NODMA to allow systems that don't have dma for floppies. o Remove all but two FDC_YE ifdefs. They aren't needed. o Move defines for YE_DATAPORT to fdreg.h.
Not fixed: o The pccard probe/attach. However, motivated individuals can more easily add this now.
This is a merge of changes I've had in my tree for a long time. These fixes were tested on my VAIO with its normal floppy. Please let me know if I broke anything.
Prodded by: Peter Wemm <peter@freebsd.org>
|
55471 |
05-Jan-2000 |
peter |
Make the evil broken pnpbios compensation slightly less evil. This is the hack that compensates for when bios vendors "forget" to include the fdc control (0x3f7) port in their io port mappings. Instead of accessing ports outside of a range allocated to a handle, simply allocate the port directly. It even shows up in the probe..
|
55462 |
05-Jan-2000 |
peter |
Patch up some of the evilness left over from the early newbus porting. In particular: - Don't leave resources allocated in the probe routine. Allocate them during probe and release them. Probe's job is to identify devices only. - Don't abuse the ivars pointer.. (!). Create real ivars and use the proper access system. (the bus_read_ivar method) - Don't add the children until attach() has successfully grabbed the hardware, otherwise there are potential leaks if attach fails.
|
55420 |
04-Jan-2000 |
tegge |
ISA device drivers use the ISA source interrupt number in locations where the low level interrupt handler number should be used. Change setup_apic_irq_mapping() to allocate low level interrupt handler X (Xintr${X}) for any ISA interrupt X mentioned in the MP table.
Remove an assumption in the driver for the system clock (clock.c) that interrupts mentioned in the MP table as delivered to IOAPIC #0 intpin Y is handled by low level interrupt handler Y (Xintr${Y}) but don't assume that low level interrupt handler 0 (Xintr0) is used.
Don't allocate two low level interrupt handlers for the system clock. Reviewed by: NOKUBI Hirotaka <hnokubi@yyy.or.jp>
|
55280 |
30-Dec-1999 |
peter |
Recognize the CSC0101 ID for the Thinkpad series.
PR: 15633 Submitted by: gibbs
|
55206 |
29-Dec-1999 |
peter |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
55177 |
28-Dec-1999 |
kato |
Added following modes: 5in HD 2 heads, 77 cylinders, 8 sectors/track, 1024 bytes/sector 5/3.5in DD 2 heads, 80 cylinders, 8 sectors/track, 512 bytes/sector
Meanings of the rogrammer-readeble fd name were explained by Brian Fundakowski Feldman and Peter Wemm in hackers list and NOKUBI Hirotaka.
Reviewed by: nyan
|
55124 |
27-Dec-1999 |
peter |
Recognize the GVC0505 (GVC 56k Faxmodem) as a sio device.
Obtained from: Dan J Fraser <dfraser@capybara.org> (for NetBSD)
|
55098 |
25-Dec-1999 |
bde |
Fixed races accessing the RTC. The races apparently caused apm_default_resume() to sometimes set a very wrong time. (1) Accesses to the RTC index and data registers were not atomic enough. Interrupts were not masked. This was only good enough until an interrupt handler (rtcintr()) started accessing the RTC in FreeBSD-2.0. (2) Access to the block of time registers in inittodr() was not atomic enough. inittodr() has 244us to read the time registers. Interrupts were not masked. This was only good enough until something (apm) started calling inittodr() after boot time in FreeBSD-2.0. The fix for (2) also makes the timecounter update more atomic, although this is currently unimportant due to the low resolution of the RTC.
Problem reported by: mckay
|
54944 |
21-Dec-1999 |
peter |
Extract a list of extra isa pnp modem ID's from NetBSD and OpenBSD. Some of these are bound to have a PNP05xx compatid, but there's no easy way to tell. Since it's just an ID list and uses the pnp header's description strings rather than encoding strings here, it doesn't seem to be too expensive to err on the safe side.
|
54939 |
21-Dec-1999 |
joerg |
Add a flag to disable FIFO probing. The code seems to have a chance of misdetecting FIFO capabilities, at least on my girlfriend's Thinkpad 755, the driver doesn't work using the FIFO.
While i was at it, i (partially) fixed option FCC_YE since it would no longer have compiled at all under -current. I've also made an attempt to document the device driver flags value (ab-)used internally by this option.
RELENG_3 candidate, but with a slightly different patch there (will go to jkh in email).
|
54920 |
20-Dec-1999 |
peter |
Add SUP2070 (Diamond SupraExpress 56i) Submitted by: Kenneth Wayne Culver <culverk@wam.umd.edu>
Add MOT4560 Obtained from: wollman
|
54890 |
20-Dec-1999 |
peter |
Remove references to register_intr() etc in comments.
|
54881 |
20-Dec-1999 |
nyan |
Removed unnecessary include files.
|
54629 |
15-Dec-1999 |
yokota |
- Add the device resume method. It supercedes the existing resume routine which hooks the apm driver. - Rename the PSM_HOOKAPM option to PSM_HOOKRESUME. - Delete unnecessary #include.
|
54510 |
12-Dec-1999 |
peter |
Make this kld'able (#include "joy.h" no longer required as there are no references to NJOY any more after newbusification)
|
54386 |
10-Dec-1999 |
imp |
o Make pccard work at all by including card.h o fix return type of sio_pccard_detach o don't free softc in deatch, since that is done by newbus o disconnect interrupt we used to have. Add cookie to com so that we can tear down the interrupt on unload o Set gone earlier, but likely doesn't matter
This makes sio pccards work again. Cards that are active when ejects may not work (but they might, softc goes away quickly).
These changes are unreviewed by bde. I'll make any style changes he wants.
|
54206 |
06-Dec-1999 |
peter |
Fix a pair of silly warnings that I introduced (that would have been nasty on an Alpha or some other sizeof(int) != sizeof(long) machine).
|
54195 |
06-Dec-1999 |
peter |
Add a truely evil workaround (hack!) for some unfortunate BIOS programming practices. It seems that newer fdc chips have an alternative way of setting the transfer speed (including high speed modes for floppy tape) that doesn't use the control register (which we don't support - we use the old way only). So, they (the BIOS programmers) sometimes leave out the 0x3f6 control register from the PnP ports descriptor(!!). "Hey, it works with windows, so what's the problem?" :-( Anyway, this hack tries to compensate for that. This was discussed with dfr (who did the pnp attachment).
|
54194 |
06-Dec-1999 |
peter |
Use bus_get_resource() instead of bus_get_resource_start() as the latter returns "0" on failure, which is indistinguishable from (say) irq 0. This should stop a couple of stray messages that turn up.
Also, if a BUS_SETUP_INTR() fails with INTR_TYPE_FAST, try falling back to a normal interrupt. This might help pccard folks with a shared slot interrupt. This whole thing needs to be revisited.
|
54156 |
05-Dec-1999 |
peter |
newbusify and port the joy driver to the Alpha. It now attaches to the joystick port on PnP sound cards that have a suitable device ID on them.
Doug Rabson added timer code so it didn't have to beat on the isa timer.
Submitted by: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
|
54073 |
03-Dec-1999 |
mdodd |
Remove the 'ivars' arguement to device_add_child() and device_add_child_ordered(). 'ivars' may now be set using the device_set_ivars() function.
This makes it easier for us to change how arbitrary data structures are associated with a device_t. Eventually we won't be modifying device_t to add additional pointers for ivars, softc data etc.
Despite my best efforts I've probably forgotten something so let me know if this breaks anything. I've been running with this change for months and its been quite involved actually isolating all the changes from the rest of the local changes in my tree.
Reviewed by: peter, dfr
|
53978 |
01-Dec-1999 |
imp |
Fix the hang on card eject problem and maybe the hang on suspend problem.
o Create new timeout routine so we don't detach the card inside a ISR but instead drop back to spl0 via a timeout of 0. o Actually delete the child of the pccard device rather than just faking it badly. o Fix sio, ed and ep to have pccard detach routines that are int rather than void. o Fix ep and ed pccard detach routines to use if_detach rather than just if_down. if_detach destroys the device, while if_down just marks it down. In this incarnation of the pccard things, we map the disable the slot action to detach the driver, which removes the driver from the device tree. When that is done, a panic would soon follow as the ifconfig tried to down the device.
Didn't fix: o Should cache the pccard dev child's pointer in struct slot o remove now unused parts of struct slot o Any driver using softc after detach has been called. sio's softc used to be statically allocated, so you could check sc->gone, but that is now gone. o Didn't remove gone from softc of drivers that use the old pccard method.
Didn't test: o ed driver changes o sio driver changes on pccards o suspend (no laptop or apm support on my desktop)
|
53585 |
22-Nov-1999 |
gallatin |
Allow a DMA channel of 0. This gets the on-board mss audio device working on Digital AlphaStations 200 and 500 machines (and probably others as well).
Submitted by: dfr
|
53461 |
20-Nov-1999 |
peter |
Allow NULL for startp and/or countp in bus_get_resource() so that you can get one of the two without having to use a dummy variable.
|
53370 |
18-Nov-1999 |
peter |
Argh, don't turn the IIR test on unless it's a pccard. These tests mess up the subsequent probes.
|
53344 |
18-Nov-1999 |
peter |
Merge some typo fixes from dev/sio/sio.c (siostop -> comstop) Remove EXTRA_SIO/NSIOTOT and make it fully dynamic (from dev/sio/sio.c) Make sio work for pccard here - pccardd doesn't activate interrupts until after prove has succeeded. Mark the initial reset of likely sio ports as broken as it depended on config supplying a list of locations to probe, devices are now proved standalone. Optimize a bit of COM_NOAST4() logic. Use bus_get_resource_start() etc rather than using isa-centric calls. Reactivate the IIR_TXRDYBUG test, I've got a card here with it. Try to be a bit smarter about activating interrupts (ie: don't panic if polled) Fix some style bugs that have crept in over time (there are still more).
|
53328 |
18-Nov-1999 |
peter |
Tidy up a few loose ends in the fifo setup code. Don't use NFDC as an arbitary limit, it is not required and goes against using PnP fdc devices (eg: when PNPBIOS is turned on, the motherboard devices (sio, fdc, etc etc) are detected via PnP, not config(8).)
|
53094 |
11-Nov-1999 |
dfr |
Reorganise the code so that I can add custom identify drivers dynamically during autoconfig to support strange hardware (such as the Yamaha DS-1) which implements 'legacy' ISA devices as well as a PCI device. This will allow the PCI driver for the YMF724 to add the legacy devices to the ISA bus and will allow the PnP system to automatically allocate the resources for those devices.
|
53091 |
11-Nov-1999 |
dfr |
Add code to support ISA PnP.
|
52998 |
08-Nov-1999 |
peter |
Use cdevsw_add() (temporarily) to avoid DEV_DRIVER_MODULE(), since the make_dev()'s that are there are not enough.
|
52997 |
08-Nov-1999 |
peter |
Use DEVICE_MODULE() directly instead of DEV_DRIVER_MODULE. psm.c uses make_dev() already.
|
52669 |
30-Oct-1999 |
iwasaki |
i8254_restore is called from apm_default_resume() to reload the countdown register. this should not be necessary but there are broken laptops that do not restore the countdown register on resume. when it happnes, it messes up the hardclock interval and system clock, which leads to the infamous "calcru: negative time" problem.
Submitted by: kjc, iwasaki Reviewed by: Steve O'Hara-Smith <steveo@eircom.net> and committers. Obtained from: PAO3
|
52585 |
28-Oct-1999 |
imp |
Last change to pccard_nbk now obviates the need to check the name of the device in question. Also fix warnings on if_ep_pccard.c
|
52471 |
25-Oct-1999 |
imp |
Add newbus pccard attachment for sio. Some of this code was written by Peter Wemm, but I've not merged all the changes he sent to me yet. This has not been reviewed by bde, so I'm committing to resolve any issues he has with this when he returns from FreeBSD CON 99.
I've had four reports of this working for them. I've been able to communicate to both my built in modem and a pccard modem with these patches.
|
52241 |
14-Oct-1999 |
dfr |
* Add some verbose logging to the PnP parser and fix a couple of bugs. * Move pnp_eisaformat() to pnp.c, declared in <isa/pnpvar.h>. * Turn the pnpbios code into an enumerator for the isa bus. This allows all devices known to the bios to be probed automatically.
Currently the pnpbios code is dependant on the PNPBIOS option. As the code is tested more and when more drivers are converted this will be made the default. I have PnP changes in the wings for fdc, atkbd, psm, pcaudio, and joy. Sio already works with pnpbios.
|
52174 |
12-Oct-1999 |
dfr |
* Add struct resource_list* argument to resource_list_alloc and resource_list_release. This removes the dependancy on the layout of ivars.
* Move set_resource, get_resource and delete_resource from isa_if.m to bus_if.m.
* Simplify driver code by providing wrappers to those methods:
bus_set_resource(dev, type, rid, start, count); bus_get_resource(dev, type, rid, startp, countp); bus_get_resource_start(dev, type, rid); bus_get_resource_count(dev, type, rid); bus_delete_resource(dev, type, rid);
* Delete isa_get_rsrc and use bus_get_resource_start instead.
* Fix a stupid typo in isa_alloc_resource reported by Takahashi Yoshihiro <nyan@FreeBSD.org>.
* Print a diagnostic message if we can't assign resources to a PnP device.
* Change device_print_prettyname() so that it doesn't print "(no driver assigned)-1" for anonymous devices.
|
52129 |
11-Oct-1999 |
peter |
Oh foo. I got carried away. :-( "joy.h" is used to size an array. (Incidently, there is no bounds checking...)
|
52125 |
11-Oct-1999 |
steve |
Add support for the USRobotics Courier V.Everything (USR0101) modem.
Submitted by: Robert Blayzor <robert@superior.net>
|
52122 |
11-Oct-1999 |
peter |
Zap unneeded #include (found by phk) Remove useless #include "joy.h"; #if NJOY > 0 - this is always true if it's being compiled. config arranges this.
|
52059 |
09-Oct-1999 |
dfr |
Factor out the PnP resource parser so that it can be re-used by pnpbios and acpi.
Reviewed by: msmith
|
52053 |
09-Oct-1999 |
mdodd |
Remove old copies. These files now live in src/sys/dev/buslogic
|
51918 |
03-Oct-1999 |
deischen |
Change pnp ID for the SupraExpress 56i Sp V.90 modem (logical ID 0x8024b04e) so that the cards description is used instead of overriding it. While I'm here, add an ID for the SUP2080 and the SUP2030.
PR: kern/13983 Submitted by: Kurt D. Zeilenga <Kurt@OpenLDAP.Org> (SUP2030) dfr (rest of change) Reviewed by: dfr
|
51912 |
03-Oct-1999 |
deischen |
Add logical device ID for the Diamond SupraExpress 56K PnP modem:
Vendor ID SUP2480 (0x8024b04e), Serial Number 0x00001334 PnP Version 1.0, Vendor Version 0 Device Description: SupraExpress 56i Sp V.90
Reviewed by: dfr
|
51905 |
03-Oct-1999 |
dfr |
Disable pnp devices before running heuristic probes. This allows us to 'hide' those devices from those probes so that they don't get probed and then re-probed later when the pnp probe is run.
|
51658 |
25-Sep-1999 |
phk |
Remove five now unused fields from struct cdevsw. They should never have been there in the first place. A GENERIC kernel shrinks almost 1k.
Add a slightly different safetybelt under nostop for tty drivers.
Add some missing FreeBSD tags
|
51654 |
25-Sep-1999 |
phk |
This patch clears the way for removing a number of tty related fields in struct cdevsw:
d_stop moved to struct tty. d_reset already unused. d_devtotty linkage now provided by dev_t->si_tty.
These fields will be removed from struct cdevsw together with d_params and d_maxio Real Soon Now.
The changes in this patch consist of:
initialize dev->si_tty in *_open() initialize tty->t_stop remove devtotty functions rename ttpoll to ttypoll a few adjustments to these changes in the generic code a bump of __FreeBSD_version add a couple of FreeBSD tags
|
51413 |
19-Sep-1999 |
phk |
Two more devstat_end_transaction() -> devstat_end_transaction_buf().
|
51376 |
18-Sep-1999 |
phk |
Use devstat_end_transaction_buf() rather than Use devstat_end_transaction()
|
51346 |
17-Sep-1999 |
dfr |
Parse resource descriptions which don't have START_DEPENDANT tags correctly. This fixes resource allocation for various PnP ed cards but there are other problems which prevent that driver from working right.
|
51226 |
13-Sep-1999 |
bde |
Removed diskerr()'s unused d_name arg and updated callers. This fixes warnings caused by the arg having the wrong type (not const enough). The arg was also wrong (a full name instead of a short one) for calls from from subr_diskmbr.c and pc98/diskslice_machdep.c.
|
51111 |
09-Sep-1999 |
julian |
Changes to centralise the default blocksize behaviour. More likely to follow.
Submitted by: phk@freebsd.org
|
51088 |
08-Sep-1999 |
peter |
Make it build, copy from dev/sio/sio.c: isa_set_flags -> device_set_flags isa_get_flags -> device_get_flags
|
51078 |
08-Sep-1999 |
peter |
Restore the old sio* - bruce can fix it himself.
|
51052 |
07-Sep-1999 |
dfr |
Change isa_get/set_flags() to device_get/set_flags().
|
51018 |
06-Sep-1999 |
peter |
Repo copy isa/sio* to dev/sio/sio* in preperation for extra bus methods including pci. Also, eliminate NSIOTOT and do it dynamically where it matters.
|
51017 |
06-Sep-1999 |
peter |
Move the #if 0 to catch the card.h include and make sure it's zero.
|
50993 |
06-Sep-1999 |
imp |
Start to disentangle the isa attachments from other buses. Partially rewrite the pccard attachment case. This is a work in progress, but doesn't break the isa case.
I left the #if 0...#endif around the pccard stuff, at Peter's request, so that normal users don't shoot themselves in the foot.
While I was here: o Indent a comment to the right location o Spell Unknown with a final 'n'.
Reviewed by: peter
|
50910 |
04-Sep-1999 |
dfr |
Only set the description if there is one in the matching isa_pnp_id.
|
50905 |
04-Sep-1999 |
dfr |
Add USR3031 pnp id.
Submitted by: Steve Price <sprice@hiwaay.net>
|
50860 |
03-Sep-1999 |
dfr |
Remove the last vestiges of the old pnp code in favour of the new one.
|
50843 |
03-Sep-1999 |
peter |
Cosmetic tweak. Collect the fdc methods together and apart from the fd methods so it's a little easier to seperate the two when reading the code.
|
50830 |
03-Sep-1999 |
julian |
Revert a bunch of contraversial changes by PHK. After a quick think and discussion among various people some form of some of these changes will probably be recommitted.
The reversion requested was requested by dg while discussions proceed. PHK has indicated that he can live with this, and it has been agreed that some form of some of these changes may return shortly after further discussion.
|
50823 |
03-Sep-1999 |
mdodd |
This adds the i386 specific support for systems with a MicroChannel Architecture bus.
Reviewed by: msmith
|
50784 |
02-Sep-1999 |
peter |
s/LOGIGAL/LOGICAL/
|
50769 |
01-Sep-1999 |
dfr |
This represents essentially a complete rewrite of the ISA PnP code. The new system is integrated with the ISA bus code more cleanly and allows the future addition of more enumerators such as PnPBIOS and ACPI.
This commit also enables the new pcm driver since it is somewhat tied to the new PnP code.
|
50751 |
01-Sep-1999 |
peter |
Sigh. Serves me right for testing against a modified tree (dfr's pnp changes). Doug changed these variables. This should fix the isa_compat.c breakage that phk reported. (Sorry!)
|
50652 |
30-Aug-1999 |
phk |
s/si_tty_tty/si_tty/g
|
50623 |
30-Aug-1999 |
phk |
Make bdev userland access work like cdev userland access unless the highly non-recommended option ALLOW_BDEV_ACCESS is used.
(bdev access is evil because you don't get write errors reported.)
Kill si_bsize_best before it kills Matt :-)
Use the specfs routines rather having cloned copies in devfs.
|
50498 |
28-Aug-1999 |
phk |
Initialize dev->si_bsize*, the floppy driver doesn't use dsopen().
|
50477 |
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
50436 |
27-Aug-1999 |
julian |
Add PHK's make_dev() into more places where DEVFS used to be hooked in directly.
Alpha change checked by: Matthew Jacob <mjacob@feral.com> i4b ISDN changes checked by: Udo Schweigert <ust@cert.siemens.de> and Hellmuth Michaelis <hm@hcs.de> PC98 changes checked by: Takahashi Yoshihiro <nyan@FreeBSD.org>
|
50254 |
23-Aug-1999 |
phk |
Convert DEVFS hooks in (most) drivers to make_dev().
Diskslice/label code not yet handled.
Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)
Add the correct hook for devfs to kern_conf.c
The net result of this excercise is that a lot less files depends on DEVFS, and devtoname() gets more sensible output in many cases.
A few drivers had minor additional cleanups performed relating to cdevsw registration.
A few drivers don't register a cdevsw{} anymore, but only use make_dev().
|
50154 |
22-Aug-1999 |
yokota |
- Remove cdevsw entry points in individual keyboard drivers; instead, use generic entry points for all drivers. - Eliminate bogus makedev(). - Eliminate softc in the lower drivers, as it is no longer necessary.
Submitted (95%) by: phk
|
50149 |
22-Aug-1999 |
yokota |
Improve the detection code for GlidePoint. This is still a kludge, but better than before...
PR: kern/13215
|
49965 |
17-Aug-1999 |
yokota |
Recognize Interlink VersaPad. `Tap' action will be recognized as the button 4.
Submitted by: Masachika ISHIZUKA <ishizuka@ish.org>
|
49860 |
16-Aug-1999 |
gibbs |
Properly set the alignment argument to bus_dma_tag_create(). If we don't care about the alignment, set it to 1, meaning single byte alignment.
|
49771 |
14-Aug-1999 |
phk |
Spring cleaning around strategy and disklabels/slices:
Introduce BUF_STRATEGY(struct buf *, int flag) macro, and use it throughout. please see comment in sys/conf.h about the flag argument.
Remove strategy argument from all the diskslice/label/bad144 implementations, it should be found from the dev_t.
Remove bogus and unused strategy1 routines.
Remove open/close arguments from dssize(). Pick them up from dev_t.
Remove unused and unfinished setgeom support from diskslice/label/bad144 code.
|
49559 |
09-Aug-1999 |
phk |
make alpha compile again.
|
49558 |
09-Aug-1999 |
phk |
Merge the cons.c and cons.h to the best of my ability. alpha may or may not compile, I can't test it.
|
49543 |
08-Aug-1999 |
phk |
Allocate and register struct tty on the fly.
|
49215 |
29-Jul-1999 |
joerg |
Revert rev 1.149. Bruce convinced me that the problem already disappeared by the fix in rev 1.120, which i wasn't immediately aware of.
|
49198 |
29-Jul-1999 |
mdodd |
Fix a typo. Back out a few lines that I haven't dealt with properly yet.
Snickered at by: Mike Smith
|
49196 |
29-Jul-1999 |
green |
Remove XXX from the headers (broke the build, I'm betting.)
|
49195 |
29-Jul-1999 |
mdodd |
Alter the behavior of sys/kern/subr_bus.c:device_print_child()
- device_print_child() either lets the BUS_PRINT_CHILD method produce the entire device announcement message or it prints "foo0: not found\n"
Alter sys/kern/subr_bus.c:bus_generic_print_child() to take on the previous behavior of device_print_child() (printing the "foo0: <FooDevice 1.1>" bit of the announce message.)
Provide bus_print_child_header() and bus_print_child_footer() to actually print the output for bus_generic_print_child(). These functions should be used whenever possible (unless you can just use bus_generic_print_child())
The BUS_PRINT_CHILD method now returns int instead of void.
Modify everything else that defines or uses a BUS_PRINT_CHILD method to comply with the above changes.
- Devices are 'on' a bus, not 'at' it. - If a custom BUS_PRINT_CHILD method does the same thing as bus_generic_print_child(), use bus_generic_print_child() - Use device_get_nameunit() instead of both device_get_name() and device_get_unit() - All BUS_PRINT_CHILD methods return the number of characters output.
Reviewed by: dfr, peter
|
49186 |
28-Jul-1999 |
msmith |
We're called too early to have any idea whether APM is going to be active or not. The only sane thing we can do here is assume that if APM is supported it might be active at some point, and bail.
In reality, even this isn't good enough; regardless of whether we support APM or not, the system may well futz with the CPU's clock speed and throw the TSC off. We need to stop using it for timekeeping except under controlled circumstances. Curse the lack of a dependable high-resolution timer.
|
49048 |
24-Jul-1999 |
yokota |
Do not print resource values which are not set.
Reviewed by: dfr
|
48959 |
21-Jul-1999 |
joerg |
Hack to work around a NULL pointer dereferencation that can be triggered by removing a floppy that as being operated on.
The spagghetti is hardly understandable at all anymore, so i can't 100 % ascertain this is really the Right Thing to do, maybe our new floppy driver maintainer, Jesus Monroy Jr can do this. :-))
|
48889 |
18-Jul-1999 |
bde |
Updated acquire_timer2()'s state machine to work when the i8254 is being used for timecounting. Fixed a race or two in it. Undisabled it.
PR: 10455
|
48888 |
18-Jul-1999 |
bde |
Don't let the machdep.tsc_freq sysctl proceed if the TSC is present but broken, since tsc_timecounter is not initialised in that case, and updating an uninitialised timecounter is fatal.
Fixed style bugs in the machdep.i8254_freq and machdep.tsc_freq sysctls.
Reviewed by: phk
|
48778 |
12-Jul-1999 |
yokota |
Improve Logitech MouseMan+ protocol support.
|
48773 |
12-Jul-1999 |
yokota |
Implement a kludge for some wheeled mice for which infamous "psmintr: out of sync..." messages is generated and the wheel movement is not recognized.
The trick is found by Takashi Nishida.
|
48557 |
04-Jul-1999 |
phk |
Remove cmaj and bmaj args from DEV_DRIVER_MODULE.
|
48341 |
29-Jun-1999 |
yokota |
Allocate the port resource when attaching the keyboard controller, rather than when the individual child device is attached.
|
48340 |
29-Jun-1999 |
yokota |
Skip the device if it is disabled, when searching for a serial port to be used for the kernel console in sccnprobe().
|
48307 |
28-Jun-1999 |
peter |
Don't #include i386/isa/isa_dma.h - it's in isa/isavar.h now. This driver is probably not far from being MI now anyway.
|
48266 |
27-Jun-1999 |
peter |
Shut up gcc.
|
48225 |
26-Jun-1999 |
mckusick |
Convert buffer locking from using the B_BUSY and B_WANTED flags to using lockmgr locks. This commit should be functionally equivalent to the old semantics. That is, all buffer locking is done with LK_EXCLUSIVE requests. Changes to take advantage of LK_SHARED and LK_RECURSIVE will be done in future commits.
|
48183 |
24-Jun-1999 |
yokota |
Declare the correct size of softc and fix sc_get_softc().
|
48160 |
24-Jun-1999 |
green |
This commit gives support for the Rise mP6 CPU. It has two changes: 1. Rise is recognized in identdcpu.c. 2. The TSC is not written to. A workaround for the CPU bug is being applied to clock.c (the bug being that the mP6 has TSC enabled in its CPUID-capabilities, but it only supports reading it. If we try to write to it (MSR 16), a GPF occurs.) The new behavior is that FreeBSD will _not_ zero the TSC. Instead, we do a bit of 64-bit arithmetic.
Reviewed by: msmith Obtained from: unfurl & msmith
|
48104 |
22-Jun-1999 |
yokota |
The second phase of syscons reorganization.
- Split syscons source code into manageable chunks and reorganize some of complicated functions.
- Many static variables are moved to the softc structure.
- Added a new key function, PREV. When this key is pressed, the vty immediately before the current vty will become foreground. Analogue to PREV, which is usually assigned to the PrntScrn key. PR: kern/10113 Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>
- Modified the kernel console input function sccngetc() so that it handles function keys properly.
- Reorganized the screen update routine.
- VT switching code is reorganized. It now should be slightly more robust than before.
- Added the DEVICE_RESUME function so that syscons no longer hooks the APM resume event directly.
- New kernel configuration options: SC_NO_CUTPASTE, SC_NO_FONT_LOADING, SC_NO_HISTORY and SC_NO_SYSMOUSE. Various parts of syscons can be omitted so that the kernel size is reduced.
SC_PIXEL_MODE Made the VESA 800x600 mode an option, rather than a standard part of syscons.
SC_DISABLE_DDBKEY Disables the `debug' key combination.
SC_ALT_MOUSE_IMAGE Inverse the character cell at the mouse cursor position in the text console, rather than drawing an arrow on the screen. Submitted by: Nick Hibma (n_hibma@FreeBSD.ORG)
SC_DFLT_FONT makeoptions "SC_DFLT_FONT=_font_name_" Include the named font as the default font of syscons. 16-line, 14-line and 8-line font data will be compiled in. This option replaces the existing STD8X16FONT option, which loads 16-line font data only.
- The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c.
- The video driver provides a set of ioctl commands to manipulate the frame buffer.
- New kernel configuration option: VGA_WIDTH90 Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. These modes are mot always supported by the video card. PR: i386/7510 Submitted by: kbyanc@freedomnet.com and alexv@sui.gda.itesm.mx.
- The header file machine/console.h is reorganized; its contents is now split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h (another new file). machine/console.h is still maintained for compatibility reasons.
- Kernel console selection/installation routines are fixed and slightly rebumped so that it should now be possible to switch between the interanl kernel console (sc or vt) and a remote kernel console (sio) again, as it was in 2.x, 3.0 and 3.1.
- Screen savers and splash screen decoders Because of the header file reorganization described above, screen savers and splash screen decoders are slightly modified. After this update, /sys/modules/syscons/saver.h is no longer necessary and is removed.
|
48050 |
20-Jun-1999 |
peter |
Use the proper interfaces to find if a device is enabled, don't dig into the bus mechanism's private internals!
|
48014 |
19-Jun-1999 |
grog |
sioprobe: Don't try to initialize disabled ports. In particular, attempting to initialize sio3 caused problems with ATI video boards, which cleverly share the I/O space.
PR: kern/12295
|
47935 |
15-Jun-1999 |
mckusick |
COM_LLCONSOLE should over-ride COM_DEBUGGER request.
|
47717 |
03-Jun-1999 |
peter |
Quieten the bt_isa_probe() messages since they get a bit much when the isa probe has gone hunting for a card on it's own.
|
47705 |
03-Jun-1999 |
yokota |
Fix PS/2 MouseMan+ protocol. We have been looking at a wrong place for the sign bit for roller movement!
|
47643 |
31-May-1999 |
dfr |
* Change include file locations. * Fix some misunderstandings about the return value of resource_int_value(). * Make it build on alpha (doesn't work yet...)
|
47642 |
31-May-1999 |
dfr |
Remove fd driver from its old home and change files which include rtc.h to account for its new location.
|
47640 |
31-May-1999 |
phk |
Simplify cdevsw registration.
The cdevsw_add() function now finds the major number(s) in the struct cdevsw passed to it. cdevsw_add_generic() is no longer needed, cdevsw_add() does the same thing.
cdevsw_add() will print an message if the d_maj field looks bogus.
Remove nblkdev and nchrdev variables. Most places they were used bogusly. Instead check a dev_t for validity by seeing if devsw() or bdevsw() returns NULL.
Move bdevsw() and devsw() functions to kern/kern_conf.c
Bump __FreeBSD_version to 400006
This commit removes: 72 bogus makedev() calls 26 bogus SYSINIT functions
if_xe.c bogusly accessed cdevsw[], author/maintainer please fix.
I4b and vinum not changed. Patches emailed to authors. LINT probably broken until they catch up.
|
47638 |
31-May-1999 |
phk |
The PPSAPI group defines the polarity in draft 3, we guessed it wrong.
|
47625 |
30-May-1999 |
phk |
This commit should be a extensive NO-OP:
Reformat and initialize correctly all "struct cdevsw".
Initialize the d_maj and d_bmaj fields.
The d_reset field was not removed, although it is never used.
I used a program to do most of this, so all the files now use the same consistent format. Please keep it that way.
Vinum and i4b not modified, patches emailed to respective authors.
|
47619 |
30-May-1999 |
dfr |
Simplistic pnp support. Needs more ids to be added.
|
47618 |
30-May-1999 |
dfr |
No support for pnp yet.
|
47617 |
30-May-1999 |
dfr |
No support for pnp devices yet.
|
47613 |
30-May-1999 |
dfr |
* Add ivars for ISA pnp. * Move isa_dma* declarations to isavar.h. * Add a method ISA_DELETE_RESOURCE() to the ISA interface. * Tidy up include protection defines.
|
47592 |
29-May-1999 |
phk |
Stop the TSC from being used as timecounter on K5/step0 machines.
|
47588 |
28-May-1999 |
bde |
Fixed glitches (jumps) of about 1/HZ seconds for the i8254 timecounter. The old version only worked right when the time was read strictly more often than every 1/HZ seconds, but we only guarantee reading it every (1/HZ + epsilon) seconds. Part of rev.1.126-1.127 attempted to fix this but didn't succeed. Detect counter rollover using the heuristic from the old version of microtime() with additional complications for supporting calls from fast interrupt handlers. This works provided i8254 interrupts are not delayed by more than 1/(2*HZ) seconds.
This needs more comments, and cleanups for the SMP case, and more testing of the SMP case before it is merged into RELENG_3.
Tested by: jhay
|
47579 |
28-May-1999 |
dfr |
Allow a sio port with its flags set to DEBUGGER+LLCONSOLE to be used for gdb. This allows the sio probe for that port to be disabled which stops it from confusing the debugger.
|
47578 |
28-May-1999 |
dfr |
* Change device_add_child_after() to device_add_child_ordered() which is easier to use and more flexible. * Change BUS_ADD_CHILD to take an order argument instead of a place. * Define a partial ordering for isa devices so that sensitive devices are probed before non-sensitive ones.
|
47400 |
22-May-1999 |
dfr |
Use the resource apis to manipulate resources.
|
47399 |
22-May-1999 |
dfr |
Don't use BUS_WRITE_IVAR to manipulate resources.
|
47398 |
22-May-1999 |
dfr |
* Factor out the common code between the isa bus drivers for i386 and alpha. * Re-work the resource allocation code to use helper functions in subr_bus.c. * Add simple isa interface for manipulating the resource ranges which can be allocated and remove the code from isa_write_ivar() which was previously used for this purpose.
|
47296 |
18-May-1999 |
yokota |
Slight reorganization of internal interface in the keyboard controller driver.
|
47178 |
14-May-1999 |
dfr |
* Define a new static method DEVICE_IDENTIFY which is called to add device instances to a parent bus. * Define a new method BUS_ADD_CHILD which can be called from DEVICE_IDENTIFY to add new instances. * Add a generic implementation of DEVICE_PROBE which calls DEVICE_IDENTIFY for each driver attached to the parent's devclass. * Move the hint-based isa probe from the isa driver to a new isahint driver which can be shared between i386 and alpha.
|
46965 |
11-May-1999 |
bde |
Fixed reset handling for motor off resets. I first fixed this together with other reset handling in rev.1.83 but broke it in rev.1.120. The breakage didn't seem to cause any problems even on the system which had problems ("extra" interrupts and botched handling thereof) before rev.1.83. It only affects multi-floppy systems anyway.
|
46894 |
10-May-1999 |
dfr |
Adjust console stuff now that makedev is no longer a macro.
|
46847 |
09-May-1999 |
peter |
For what it's worth, idelayed is declared as a volatile in the headers, and even though it's not used in this file make it a volatile here too.
|
46836 |
09-May-1999 |
peter |
Remove hackish foot protection.. If you ask for an atkbd on an isa bus rather than on the keyboard controller, you will get it.. (and shoot your feet)
|
46834 |
09-May-1999 |
peter |
Make COM_ESP and COM_MULTIPORT compile for LINT. It might even work..
|
46809 |
09-May-1999 |
peter |
Optimize out a couple of places where com_addr() is used twice in a row, although this is pretty trivial. devclass_get_softc() is a tad more expensive than the old com_addr() implementation. If Bruce is really worried about the cost of this, it could always be changed so that the softc pointer is stored in a local array again.
|
46805 |
09-May-1999 |
peter |
Delete the #if'ed out old isa bus probe/attach routines
|
46794 |
09-May-1999 |
peter |
Move opt_sio.h options to conf/options and activate in isa/sio.c
|
46792 |
09-May-1999 |
phk |
Unconfuse DEV_MODULE() and DEV_DRIVER_MODULE() about the difference between a major number for a dev_t.
|
46783 |
09-May-1999 |
phk |
add some amount of sanity to the way the gdb stuff finds its device.
I'm not too happy about the result either, but at least it has less chance of backfiring.
This particular feature could be called "a mess" without offending anybody.
|
46779 |
09-May-1999 |
phk |
siocngetc & putc can be staticized.
|
46763 |
09-May-1999 |
yokota |
Revive APM hooking code for i386 arch now that the same source file is used for both i386 and alpha (the code was in sys/i386/isa/psm.c, but was disabled when ported to alpha.)
|
46743 |
08-May-1999 |
dfr |
Move the declaration of the interrupt type from the driver structure to the BUS_SETUP_INTR call.
|
46729 |
08-May-1999 |
peter |
Print the child IRQ on it's identification line.
|
46727 |
08-May-1999 |
peter |
Brace initializers to avoid a warning.
|
46716 |
08-May-1999 |
peter |
GC unused #define id_physid id_scsiid
|
46714 |
08-May-1999 |
peter |
Slightly increase the visibility of the isa_wrap_old_drivers() stuff. It would be a shame to pollute the new isa.c with the isa_device.h defs.
|
46658 |
07-May-1999 |
mckusick |
Get rid of extern declarations on gdb stuff so systems compiled without DDB will compile. Warn users that try to use GDB without specifying a GDB port in their configuration file.
|
46650 |
07-May-1999 |
mjacob |
fix it so it compiles on alpha again
|
46635 |
07-May-1999 |
phk |
Continue where Julian left off in July 1998:
Virtualize bdevsw[] from cdevsw. bdevsw() is now an (inline) function.
Join CDEV_MODULE and BDEV_MODULE to DEV_MODULE (please pay attention to the order of the cmaj/bmaj arguments!)
Join CDEV_DRIVER_MODULE and BDEV_DRIVER_MODULE to DEV_DRIVER_MODULE (ditto!)
(Next step will be to convert all bdev dev_t's to cdev dev_t's before they get to do any damage^H^H^H^H^H^Hwork in the kernel.)
|
46625 |
07-May-1999 |
phk |
Introduce two functions: physread() and physwrite() and use these directly in *devsw[] rather than the 46 local copies of the same functions.
(grog will do the same for vinum when he has time)
|
46624 |
07-May-1999 |
mckusick |
Generalize to allow any serial port to be used as the GDB port. Mark the GDB port in the config file with flags 0x80. Currently only the sio driver checks these flags and sets up a GDB port, but adding similar code to other serial drivers would be easy. For backward compatibility, if an sio port is marked as the console and no port is marked as the gdb port, the GDB port will be mapped to the console port. This hack should go away at some point.
|
46580 |
06-May-1999 |
phk |
remove b_proc from struct buf, it's (now) unused.
Reviewed by: dillon, bde
|
46571 |
06-May-1999 |
peter |
Fix up a few easy 'assignment used as truth value' and 'suggest parens around && within ||' type warnings. I'm pretty sure I have not masked any problems here, I've committed real problem fixes seperately.
|
46570 |
06-May-1999 |
peter |
The joypart() macro had a precedence bug. Add seatbelts for UNIT() too.
|
46333 |
02-May-1999 |
peter |
Disable FDC_YE - it's broken at present (breaking LINT) and awaiting some pccard fixups. Make DEVFS compile, it breaks LINT.
|
46153 |
28-Apr-1999 |
dt |
s/static foo_devsw_installed = 0;/static int foo_devsw_installed;/. (Edited automatically)
|
46112 |
27-Apr-1999 |
phk |
Suser() simplification:
1: s/suser/suser_xxx/
2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>.
3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/
The remaining suser_xxx() calls will be scrutinized and dealt with later.
There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce.
More changes to the suser() API will come along with the "jail" code.
|
46054 |
25-Apr-1999 |
phk |
Make the machdep.i8254_freq and machdep.tsc_freq sysctls modify the timecounter as well
Asked for by: bde, jhay
|
45994 |
24-Apr-1999 |
dt |
Modify the non-i386 version of disable_intr() and enable_intr() so that they don't produce a warning on every use.
|
45986 |
24-Apr-1999 |
peter |
Revert part of 1.9; we don't need to reset the port after release now that the isa bus doesn't clear the hints at that point.
|
45935 |
22-Apr-1999 |
peter |
Return the port size from the probe. "ppc0 at port 0x378 irq 7 drq 3 on isa0" becomes "ppc0 at port 0x378-0x37f irq 7 drq 3 on isa0"
|
45900 |
21-Apr-1999 |
peter |
oops, SMP was missing includes for a typedef.
|
45897 |
21-Apr-1999 |
peter |
Stage 1 of a cleanup of the i386 interrupt registration mechanism. Interrupts under the new scheme are managed by the i386 nexus with the awareness of the resource manager. There is further room for optimizing the interfaces still. All the users of register_intr()/intr_create() should be gone, with the exception of pcic and i386/isa/clock.c.
|
45796 |
18-Apr-1999 |
peter |
Make the bt isa driver work.. - fix cut/paste problem. :-) - don't forget to call isa_dmacascade() - reset the port after we release resources.
That last one is a trap to watch out for.. The isa bus driver uses the same port/irq/mem/etc variables for the initial probe hints as it does for allocation/deallocation tracking. Releasing a resource clears the variable and then you loose the hint during attach.. (ouch!)
|
45791 |
18-Apr-1999 |
peter |
Implement an EISA new-bus framework. The old driver probe mechanism had a quirk that made a shim rather hard to implement properly and it was just easier to convert the drivers in one go. The changes to the buslogic driver go beyond just this - the whole driver was new-bus'ed including pci and isa. I have only tested the EISA part of this so far.
Submitted by: Doug Rabson <dfr@nlsystems.com>
|
45789 |
18-Apr-1999 |
peter |
Merge revs 1.57 and 1.60 of i386/isa/psm.c
|
45781 |
18-Apr-1999 |
peter |
Merge missing changes from i386/isa/sioreg.h (PC98 related)
|
45780 |
18-Apr-1999 |
peter |
Tidy up a few things left over from the conversion from i386/isa/sio.c. Leave two #if 0'd notes about the way things used to be done for reference.
|
45777 |
18-Apr-1999 |
dfr |
Register sio interrupts as fast (fixing some silo overflow messages).
|
45730 |
17-Apr-1999 |
peter |
Merge up to rev 1.234 (nice revision number!) of i386/isa/sio.c.
|
45729 |
17-Apr-1999 |
peter |
Merge up to rev 1.226 of i386/isa/sio.c
|
45724 |
16-Apr-1999 |
peter |
Copy across some apparently missing cleanups from i386/isa/vga_isa.c
|
45723 |
16-Apr-1999 |
peter |
As a temporary anti-foot-shooting measure, don't let the user attach the atkbd device to isa, as was in the old (and 3.x) GENERIC config.
|
45720 |
16-Apr-1999 |
peter |
Bring the 'new-bus' to the i386. This extensively changes the way the i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA.
(Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.)
This is a checkpoint of work-in-progress, but is quite functional.
The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman.
Approved by: core
|
45390 |
06-Apr-1999 |
phk |
failled spell-check
|
45360 |
06-Apr-1999 |
peter |
Use reference counted PHOLD/PRELE rather than the P_PHYSIO flag.
|
44628 |
10-Mar-1999 |
yokota |
Keyboard driver update in preparation for the USB keyboard driver.
- Refined internal interface in keyboard drivers so that: 1. the side effect of device probe is kept minimal, 2. polling mode function is added, 3. and new ioctl and configuration options are added (see below).
- Added new ioctl: KDSETREPEAT Set keyboard typematic rate. There has existed an ioctl command, KDSETRAD, for the same purpose. However, KDSETRAD is dependent on the AT keyboard. KDSETREPEAT provides more generic interface. KDSETRAD will still be supported in the atkbd driver.
- Added new configuration options: ATKBD_DFLT_KEYMAP Specify a keymap to be used as the default, built-in keymap. (There has been undocumented options, DKKEYMAP, UKKEYMAP, GRKEYMAP, SWKEYMAP, RUKEYMAP, ESKEYMAP, and ISKEYMAP to set the default keymap. These options are now gone for good. The new option is more general.)
KBD_DISABLE_KEYMAP_LOADING Don't allow the user to change the keymap.
|
44579 |
08-Mar-1999 |
gibbs |
Pull 'ISA style' probe where interrupt information is determined through commands sent to card, into the base driver module. It is now used for EISA board probes too.
|
44023 |
14-Feb-1999 |
nsouch |
More appropriate fix to the id_irq read during probe
|
44001 |
14-Feb-1999 |
nsouch |
The way the interrupt id was calculated was wrong and the lpt driver was thinking irq was enabled although it wasn't. This case was particular to a no-interrupt static configuration.
Reported by: "Norman C. Rice" <nrice@emu.sourcee.com>
|
43990 |
14-Feb-1999 |
nsouch |
Fix interrupt handling with DMA. Bit nFault was tested in the control reg. instead of the status reg. and check ECP mode before considering nFault.
|
43819 |
10-Feb-1999 |
ken |
Add a prioritization field to the devstat_add_entry() call so that peripheral drivers can determine where in the devstat(9) list they are inserted.
This requires recompilation of libdevstat, systat, vmstat, rpc.rstatd, and any ports that depend on the devstat code, since the size of the devstat structure has changed. The devstat version number has been incremented as well to reflect the change.
This sorts devices in the devstat list in "more interesting" to "less interesting" order. So, for instance, da devices are now more important than floppy drives, and so will appear before floppy drives in the default output from systat, iostat, vmstat, etc.
The order of devices is, for now, kept in a central table in devicestat.h. If individual drivers were able to make a meaningful decision on what priority they should be at attach time, we could consider splitting the priority information out into the various drivers. For now, though, they have no way of knowing that, so it's easier to put them in an easy to find table.
Also, move the checkversion() call in vmstat(8) to a more logical place.
Thanks to Bruce and David O'Brien for suggestions, for reviewing this, and for putting up with the long time it has taken me to commit it. Bruce did object somewhat to the central priority table (he would rather the priorities be distributed in each driver), so his objection is duly noted here.
Reviewed by: bde, obrien
|
43674 |
05-Feb-1999 |
yokota |
Oops, the last commit contained a wrong patch. This is the correct one.
|
43664 |
05-Feb-1999 |
yokota |
- Don't assume the line length in the video memory is always the same as the screen width. - Store the current video mode information in the `video_adapter' struct. - The size of the `v_offscreensize' field in the VESA mode information block is u_int16, not u_int8.
|
43460 |
31-Jan-1999 |
nsouch |
Fix compile warnings about missing braces around static initialization of unions.
|
43433 |
30-Jan-1999 |
nsouch |
Distinguish EPP address/data register. Add EPP address register access to ppi.
Change microseq offsets. Previously, offsets of the program counter where added to the index of the current microinstruction. Make them rely on the index of the next executed microinstruction.
Suggested by: Luigi Rizzo <luigi@labinfo.iet.unipi.it>
|
43425 |
30-Jan-1999 |
phk |
Use suser() to check for super user rather than examining cr_uid directly. Use TTYDEF_SPEED rather than 9600 a couple of places.
Reviewed by: bde, with a few grumbles.
|
43105 |
23-Jan-1999 |
dfr |
Update the alpha port to use the new syscons.
Submitted by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> (partly)
|
42906 |
20-Jan-1999 |
mjacob |
I guess this is now a legacy driver (for alpha only right now). At any rate, some changes had to be made so that alpha would compile.
|
42820 |
19-Jan-1999 |
peter |
Update the pccard hooks to use a module style declaration instead.
|
42690 |
15-Jan-1999 |
bde |
Fixed corruption of the fd buffer queue. Once upon a time, the active buffer had to be left on the head of the queue for [bufq]disksort() to sort against. This isn't right for devices that can support multiple active i/o's, and only the fd driver did it. "Fixing" this in rev.1.36 of ufs_disksubr.c broke the fd driver in much the same way as rev.1.52 of <sys/buf.h> broke it (see rev.1.119).
Bug reported and fix tested by: dt
|
42482 |
10-Jan-1999 |
nsouch |
Fix broken low level ppb_rxxx() return type: char becomes u_char.
Submitted by: Bruce Evans <bde@zeta.org.au>
Some ppb bootup printfs simplified.
|
42475 |
10-Jan-1999 |
nsouch |
Major ppbus commit with:
+ ECP parallel port chipset FIFO detection + DMA+FIFO parallel I/O handled as chipset specific + nlpt updated in order to use the above enhanced parallel I/O. Use 'lptcontrol -e' to use enhanced I/O + Various options documented in LINT + Full IEEE1284 NIBBLE and BYTE modes support. See ppbus(4) for an overview of the IEEE1284 standard + Detection of PnP parallel devices at boot + Read capability added to nlpt driver to get IEEE1284 compliant printer status with a simple 'cat /dev/lpt0' + IEEE1284 peripheral emulation added to BYTE mode. Two computers may dialog according to IEEE1284 signaling method. See PERIPH_1284 option and /sys/dev/ppbus/ppi.c
All this code is supposed to provide basic functions for IEEE1284 programming. ppi.c and nlpt.c may act as examples.
|
42333 |
06-Jan-1999 |
yokota |
Move IO_PSMSIZE from kbdio.h to isareg.h.
While I am here, correct the values for IO_MDASIZE and IO_CGASIZE; they should be 12 rather than 16.
|
42155 |
30-Dec-1998 |
hoek |
Silence -Wtrigraph.
Submitted by: Bradley Dunn <bradley@dunn.org> (pr: kern/8817)
|
42083 |
27-Dec-1998 |
phk |
Pre 3.0 branch cleanup casualty #6: ft
|
41788 |
14-Dec-1998 |
bde |
Fixed LINT breakage in previous commit. Option FDC_YE enabled a syntax error. Options FDC_YE and DEVFS together enabled references to a nonexistent variable and calls of a nonexistent function.
|
41787 |
14-Dec-1998 |
mckay |
Fix tabs that should have been spaces. Some were in kernel error messages.
|
41741 |
13-Dec-1998 |
steve |
Add support for another 3COM/USR PNP modem, USR3031.
|
41693 |
12-Dec-1998 |
imp |
Add support for the YE-Data external PCMCIA floppy driver. This floppy is used on the toshiba Libretto line of subnotebook computers. It differs from a normal floppy in that you must use PIO rather than DMA to transfer the data.
To enable this, you must add options "FDC_YE" to your kernel. I don't have a machine that has a floppy and a pcmcia slot to test to make sure that this doesn't impact normal floppy units, so I've left this as an option.
I have ported this to -current and made an attempt to ensure that the indentation conforms to style(9), aka the bruce filter.
Reviewed by: nate, markm Submitted by: David Horwitt (dhorwitt@ucsd.edu)
|
41658 |
10-Dec-1998 |
eivind |
Rename one of the two devfs_link's to devfs_makelink.
|
41591 |
07-Dec-1998 |
archie |
The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static and local variables, goto labels, and functions declared but not defined.
|
41514 |
04-Dec-1998 |
archie |
Examine all occurrences of sprintf(), strcat(), and str[n]cpy() for possible buffer overflow problems. Replaced most sprintf()'s with snprintf(); for others cases, added terminating NUL bytes where appropriate, replaced constants like "16" with sizeof(), etc.
These changes include several bug fixes, but most changes are for maintainability's sake. Any instance where it wasn't "immediately obvious" that a buffer overflow could not occur was made safer.
Reviewed by: Bruce Evans <bde@zeta.org.au> Reviewed by: Matthew Dillon <dillon@apollo.backplane.com> Reviewed by: Mike Spengler <mks@networkcs.com>
|
41181 |
15-Nov-1998 |
dfr |
* Add hooks to allow the X server to access I/O ports and memory. * Update drivers to the latest version of the bus interface.
The ISA drivers' use of the new resource api is minimal. Garrett has some much cleaner drivers which should be more easily shared between i386 and alpha. This has only been tested on cia based machines. It should work on lca and apecs but I might have broken something.
|
41048 |
10-Nov-1998 |
gibbs |
Fix probes when a port address is specified.
|
41016 |
08-Nov-1998 |
dfr |
Port the ps/2 mouse driver to the alpha.
|
41004 |
08-Nov-1998 |
dfr |
* Fix a couple of places in the device pager where an address was truncated to 32 bits. * Change the calling convention of the device mmap entry point to pass a vm_offset_t instead of an int for the offset allowing devices with a larger memory map than (1<<32) to be supported on the alpha (/dev/mem is one such).
These changes are required to allow the X server to mmap the various I/O regions used for device port and memory access on the alpha.
|
40784 |
31-Oct-1998 |
nsouch |
pcf.c: timeout management added
ppc.c: nsc code improved. Actually, a complete rewrite.
|
40778 |
31-Oct-1998 |
dfr |
* Fix vga_probe() so that it doesn't report a non-vga display adapter as a vga. * Fix broken logic in syscons for a failed probe. * Fix AlphaStation 500/600 so that non-serial consoles are supported.
Submitted by: Thomas Valentino Crimi <tcrimi+@andrew.cmu.edu> (vga bits), Andrew Gallatin <gallatin@cs.duke.edu> (AS500/AS600)
|
40610 |
23-Oct-1998 |
phk |
Update timecounters to new interface.
|
40565 |
22-Oct-1998 |
bde |
Initialize isa_devtab entries for interrupt handlers in individual device drivers, not in ioconf.c. Use a different hack in isa_device.h so that a new config(8) is not required yet.
pc98 parts approved by: kato
|
40265 |
12-Oct-1998 |
imp |
Fix breakage introduced by last patch. bde has added CC_QUIET flag to hasseen_isadev so this will be less noisy when conflicts do exist. Also eliminate redundant warnings about conflicts.
Requested by: bde Reviewed by: gibbs
|
40160 |
10-Oct-1998 |
imp |
Fix conficts in probe: o For bt and aha only probe the one I/O range if a specific I/O is specified in the config file. o Don't even try to probe I/O ranges that have been seen already. o If we conflict with an IRQ or DRQ, then fail the probe.
Requested by: bde, gibbs Approved by: jkh
|
39685 |
26-Sep-1998 |
dfr |
Merge changes from i386/isa/sio.c up to revision 1.215.
|
39679 |
26-Sep-1998 |
peter |
Underlying ,v files were copied and detagged. Re-commit old versions onto the head revision. (mainly using sys/bus.h etc for alpha)
|
39616 |
24-Sep-1998 |
bde |
Removed unused include of "ioconf.h" again. The CAM changes made ioconf.h empty but regressed to including it here.
|
39526 |
20-Sep-1998 |
bde |
Attempt to work around a bug in the previous commit related to non-reentrancy of SMP clock locking. Depend on the giant lock protecting clkintr().
|
39521 |
20-Sep-1998 |
nsouch |
- program counter was previously an index in the microsequence, now pc is struct ppb_microseq* pointing directly into the microsequence
|
39503 |
20-Sep-1998 |
bde |
Ensure that the i8254 timecounter doesn't go backards. It sometimes went backwards when interrupts were masked for more than one i8254 interrupt period. It sometimes went backwards when the i8254 counter was reprogrammed. Neither of these should happen in normal operation.
Update the i8254 timecounter support variables atomically. Calling timecounter functions from fast interrupt handlers may actually work in all cases now.
|
39414 |
17-Sep-1998 |
dfr |
Merge with the latest i386 syscons.
|
39312 |
15-Sep-1998 |
gibbs |
Nuke uninitialized varible fd from retrier(). Change the devstat code to reference fdc->fd instead.
|
39228 |
15-Sep-1998 |
gibbs |
Update system to new device statistics code.
Submitted by: "Kenneth D. Merry" <ken@plutotech.com> mike@smith.net.au (Mike Smith)
|
39223 |
15-Sep-1998 |
gibbs |
Mylex/Buslogic MultiMaster SCSI-Host Adapter Driver for CAM.
|
39187 |
14-Sep-1998 |
sos |
Remove the SLICE code. This clearly needs alot more thought, and we dont need this to hunt us down in 3.0-RELEASE.
|
39144 |
13-Sep-1998 |
eivind |
Support PnP compatibility IDs. This allow e.g. the ed driver to pick up any PnP NE2000 compatible card, instead of forcing us to always update ID lists.
Submitted by: Ugo Paternostro <paterno@dsi.unifi.it>
|
39142 |
13-Sep-1998 |
nsouch |
invalid printf call fixed -> compile time warning removed
|
39135 |
13-Sep-1998 |
nsouch |
ppbus enhanced to support ZIP+ : microseq improved
|
38888 |
06-Sep-1998 |
tegge |
Maintain a mapping from irq number to (ioapic number, int pin) tuple, and use this when masking/unmasking interrupts.
Maintain a mapping from (iopaic number, int pin) tuple to irq number, and use this when configuring devices and programming the ioapics.
Previous code assumed that irq number was equal to int pin number, and that the ioapic number was 0.
Don't let an AP enter _cpu_switch before all local apics are initialized.
|
38761 |
02-Sep-1998 |
nsouch |
printing with compatible mode fixed if ECP available + more verbose if bootverbose set
|
38505 |
24-Aug-1998 |
bde |
Fixed printf format errors. Only one left in LINT on i386's.
|
38488 |
23-Aug-1998 |
bde |
Fixed printf format errors.
|
38485 |
23-Aug-1998 |
bde |
Added D_TTY to the cdevswitch flags for all tty drivers. This is required for the Lite2 fix for always returning EIO in dead_read().
Cleaned up the cdevswitch initializers for all tty drivers.
Removed explicit calls to ttsetwater() from all (tty) drivers. ttsetwater() is now called centrally for opens, not just for parameter changes.
|
38444 |
20-Aug-1998 |
bde |
Fixed devfs initialization which I broke in the previous commit.
|
38435 |
19-Aug-1998 |
bde |
Enabled dynamically sized tty input buffers (with enough buffering for 1 second's worth of input) and larger tty output buffers. The interrupt-level buffers are still too small for speeds above 115200 bps (only a little too small for 230400 bps if RTS flow control is enabled).
Don't call ttsetwater() explicitly in open(). It is now called for the TTYDISC l_open() and should be static.
Don't attempt to register the cdevsw more than once.
|
38246 |
11-Aug-1998 |
bde |
Register tty software interrupt handlers at run time using register_swi() instead of at compile time using ifdefs.
Use _swi_null instead of dummycamisr. CAM and dpt should call register_swi() instead of hacking on ihandlers[] directly.
|
38138 |
06-Aug-1998 |
dfr |
Port syscons to the alpha. The driver itself has moved to sys/isa as it will hopefully become a portable driver usable by all architectures. The api support files have had to be copied to sys/alpha/include since userland programs expect to find them in <machine/*.h>.
All the revision history of the i386 syscons has been retained by a repository copy.
|
38136 |
06-Aug-1998 |
dfr |
Support files for ISA bus.
|
38061 |
03-Aug-1998 |
msmith |
Major ppbus updates from the author.
- ppbus now supports PLIP via the if_plip driver - ieee1284 infrastructure added, including parallel-port PnP - port microsequencer added, for scripting the sort of port I/O that is common with parallel devices without endless calls up and down through the driver structure. - improved bus ownership behaviour among the ppbus-using drivers. - improved I/O chipset feature detection
The vpo driver is now implemented using the microsequencer, leading to some performance improvements as well as providing an extensive example of its use.
Reviewed by: msmith Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
|
38052 |
03-Aug-1998 |
yokota |
1. Reorganized screen saver related code so that both the LKM screen saver and splash screen can all work properly with syscons. Note that the splash screen option (SC_SPLASH_SCREEN) does not work yet, as it requires additional code from msmith.
- Reorganized the splash screen code to match the latest development in this area. - Delay screen switch in `switch_scr()' until the screen saver is stopped, if one is running, - Start the screen saver immediately, if any, when the `saver' key is pressed. (There will be another commit for `kbdcontrol' to support this keyword in the keymap file.) - Do not always stop the screen saver when mouse-related ioctls are called. Stop it only if the mouse is moved or buttons are clicked; don't stop it if any other mouse ioctls are called.
2. Added provision to write userland screen savers. (Contact me if you are interested in writing one.)
- Added CONS_IDLE, CONS_SAVERMODE, and CONS_SAVERSTART ioctls to support userland screen savers.
3. Some code clean-ups.
|
38047 |
03-Aug-1998 |
yokota |
- When the system is shut down, switch to the vty0 if possible. - Don't try to ring bell when system is going down. Beacuse the clock code is about to be stopped, the timeout routine won't be called anymore.
|
38046 |
03-Aug-1998 |
yokota |
Fix the bug which always reallocated the cut buffer whenever the screen mode is changed even if another vty has larger size. Reallocate the buffer only when the new screen size is larger than the current cut buffer size.
|
38045 |
03-Aug-1998 |
yokota |
Don't accept the blank time value, if it is too big.
PR: bin/6188
|
38043 |
03-Aug-1998 |
yokota |
- Add new bell types: "quiet.normal" and "quiet.visual". When bell is of "quiet" types, the console won't ring (or flush) if the ringing process is in a background vty. PR: i386/2853
- Modify the escape sequence 'ESC[=%d;%dB' so that bell pitch and duration are set in hertz and msecs by kbdcontrol(1). There will be a corresponding kbdcontrol patch. PR: bin/6037 Submitted by: Kouichi Hirabayashi (kh@eve.mogami-wire.co.jp)
|
37945 |
29-Jul-1998 |
bde |
Fixed error handling: - Call isa_dmadone() whenever necessary to stop DMA and/or free bounce buffers. Undead DMA corrupted the malloc freelist fairly consistently in the following configuration: SLICE kernel, 2 floppy drives, no disk in fd0, disk in fd1. - Don't call fdc_reset() from fd_timeout(). Doing so gave an "extra" interrupt which was usually misinterpreted as being for completion of the next FDC command; the interrupt for completion of the next FDC command was then usually misinterpreted... There were further complications for interrupts latched by the soft-spl mechanism so that they were delivered after all the h/w interrupts went away. This caused at least wrong head settle delays and may be why the FreeBSD floppy driver seems to munch floppies more than most floppy drivers. The reset was unnecessary anyway in cases that didn't have the bug described next, since is was repeated a little later for the IOTIMEDOUT state. The state machine has complications to handle resets correctly, so just use it. - Don't call retrier() from fd_timeout(). The IOTIMEDOUT state needs to be processed next, and it isn't valid to set to that state if retrier() has aborted the current transfer. Doing so caused null pointer panics after the previous bug was fixed.
Improved error handling: - If an i/o is aborted, arrange to reset in the state machine before doing the next i/o. New fdc flag for this. This fixes spurious warnings and lengthy busy-waiting for the next i/o. - Split STARTRECAL into RESETCOMPLETE and STARTRECAL and only check for the results from reset if we actually reset. This fixes spurious warnings for other paths to STARTRECAL. [Oops, it may break reset handling for motor-off resets.]
Cleanups in fd_timeout(): - Renamed to fd_iotimeout() to make it clearer that it is only used for i/o. - Don't handle the bp == 0 case. This case can't happen for i/o. - Don't check for controller-busy. We know it must be. - Don't print anything. retrier() already prints too much for normal errors. - Fudge the state differently so that the state machine advances fdc->retry and the status is invalid (perhaps this should fudge a valid state like the one for WP). - Style fixes.
|
37733 |
18-Jul-1998 |
bde |
Fixed error handling after a seek error that can't happen. When the controller reports a successful seek, it is very unlikely to report seeking to a cylinder other than the one requested, but we check for this, and botched the error handling for the requested_cylinder != 0 case. This error happened when the bug fixed in rev.1.52 of <sys/buf.h> caused the head of buffer queue to change to one starting on a different cylnder - the requested cylinder was found, but it wasn't what we thought we requested. The fix is simply to arrange to reset the state machine.
Corruption of the buffer queue seems to only have been a problem in the floppy driver. Other drivers dequeue the head of the queue before doing physical i/o on it, so the corruption at worse broke the elevator sort order. Dequeueing breaks it anyway.
|
37683 |
15-Jul-1998 |
bde |
Changed %n to %r in devfs name format strings. %n has almost gone away.
|
37677 |
15-Jul-1998 |
bde |
The ioctl request arg is unsigned long, so don't attempt to pass it around as signed int.
|
37639 |
14-Jul-1998 |
bde |
Don't pretend to support ix86's with 16-bit ints by using longs just to ensure 32-bit variables. Doing so broke i386's with 64-bit longs.
|
37616 |
13-Jul-1998 |
julian |
SLICE probing becomes asynchronous. It can now be triggered by interupt level events. This needs a lot of cleanup, but has been working here for a month or two.. originally needed for CAM integration but that hasn't happenned yet. The probing state machines for each handler should be replaced by a more generic state-service. It's still quite messy in there..
|
37556 |
11-Jul-1998 |
phk |
Improve a couple of comment. PR: 7242 Reviewed by: phk Submitted by: Peter Jeremy <peter.jeremyp@alcatel.com.au>
|
37554 |
11-Jul-1998 |
bde |
Don't pretend to support ix86's with 7-bit ints by using longs just to ensure 8-bit variables. Doing so mainly bogotified some printf formats.
|
37414 |
06-Jul-1998 |
imp |
Add the ability to suspend as well as hibernate to the system. This is the kernel part of my commits, the userlevel stuff will be done in a separate commit. Add the ability to suspend as well as hibernate to syscons. Create a new virtual key like hibernate for suspend. Update apm_bios.h to define more apm bios goodies.
|
37389 |
04-Jul-1998 |
julian |
There is no such thing any more as "struct bdevsw".
There is only cdevsw (which should be renamed in a later edit to deventry or something). cdevsw contains the union of what were in both bdevsw an cdevsw entries. The bdevsw[] table stiff exists and is a second pointer to the cdevsw entry of the device. it's major is in d_bmaj rather than d_maj. some cleanup still to happen (e.g. dsopen now gets two pointers to the same cdevsw struct instead of one to a bdevsw and one to a cdevsw).
rawread()/rawwrite() went away as part of this though it's not strictly the same patch, just that it involves all the same lines in the drivers.
cdroms no longer have write() entries (they did have rawwrite (?)). tapes no longer have support for bdev operations.
Reviewed by: Eivind Eklund and Mike Smith Changes suggested by eivind.
|
37136 |
24-Jun-1998 |
yokota |
Don't refer to mouse_info.u.datea.[xyz] while processing MOUSE_BUTTON_EVENT ioctl. These fields don't have valid values for this ioctl. PR: kern/6928 Submitted by: Bill Fenner <fenner@parc.xerox.com>
|
37135 |
24-Jun-1998 |
phk |
Avoid some panics in sio_unload which gets called with various dirt if the attach of a modem card failed.
|
37013 |
16-Jun-1998 |
bde |
Don't log "unexpected" events on never-opened devices. Events left over from the probe are now expected for incompatible UARTs that deliver IRQs as a strobe (low) instead of a level (high).
Discard events on going-away devices too. Endless loops may have been possible when an active pccard was removed.
|
36948 |
13-Jun-1998 |
steve |
Add a symlink from /dev/vga to /dev/ttyv0 when using DEVFS for programs like doscmd.
PR: 6920 Submitted by: Luoqi Chen <luoqi@chen.ml.org>
|
36810 |
09-Jun-1998 |
phk |
Add a tc_ prefix to struct timecounter members.
Urged by: bde
|
36741 |
07-Jun-1998 |
phk |
Add a member function more to the timecounters, this one is for use with latch based PPS implementations. The client that uses it will be committed after more testing.
|
36738 |
07-Jun-1998 |
dfr |
Fix some more ioctls which I missed becausese they were hidden by options which were not in LINT.
|
36735 |
07-Jun-1998 |
dfr |
This commit fixes various 64bit portability problems required for FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change.
The prototype FreeBSD/alpha machdep will follow in a couple of days time.
|
36719 |
07-Jun-1998 |
phk |
Add a "this" style argument and a "void *private" so timecounters can figure out which instance to wount with.
|
36704 |
06-Jun-1998 |
steve |
keymap -> key_map so that the kernel will compile with -DESKEYMAP.
PR: 6864 Submitted by: Javier Rueda <jmrueda@diatel.upm.es>
|
36613 |
03-Jun-1998 |
bde |
Force success of the probe (after doing it as before except in one miscconfigured case) if the port is the console. This fixes several bugs: - if all sioprobe()s failed, then the console driver followed null pointers in cdevsw[]. - if the sioprobe() for the console failed but another sioprobe() succeeded, then init hung early when the console couldn't be opened. - it was silly for the console to not be there after printing boot messages on it. Bugs introduced by this are hopefully no worse than old ones caused by forcing the success of the `cn' level probe.
|
36611 |
03-Jun-1998 |
bde |
Fixed a printf() arg botch in the previous commit.
Only complain about an irq mismatch in the probe if the configured irq doesn't become active, and then print the bitmap of irqs that became active (including clock irqs) instead of just the first (not including clock irqs).
Bugs reported by: msmith
|
36492 |
31-May-1998 |
bde |
Converted the ICU-level interrupt tests (3, 5 and 8) in sioprobe() into a test of the irq number, and made failure of this test non-fatal. Removed related unused complications for the APIC_IO case. Removed the no-test3 flag.
Deverbosified the failure messages for the other tests. Removed the per-port verbose flag - just use the general verbose flag.
|
36441 |
28-May-1998 |
phk |
Some cleanups related to timecounters and weird ifdefs in <sys/time.h>.
Clean up (or if antipodic: down) some of the msgbuf stuff.
Use an inline function rather than a macro for timecounter delta.
Maintain process "on-cpu" time as 64 bits of microseconds to avoid needless second rollover overhead.
Avoid calling microuptime the second time in mi_switch() if we do not pass through _idle in cpu_switch()
This should reduce our context-switch overhead a bit, in particular on pre-P5 and SMP systems.
WARNING: Programs which muck about with struct proc in userland will have to be fixed.
Reviewed, but found imperfect by: bde
|
36246 |
20-May-1998 |
phk |
LoadSoftModem() routine at sio.c does not trap general serial I/Os. It fauls to probe eather DSI Modem or others.
PR: 4657 Reviewed by: phk Submitted by: Kenji Saito <marukun@mx2.nisiq.net>
|
36198 |
19-May-1998 |
phk |
Change a data type internal to the timecounters, and remove the "delta" function.
Reviewed, but not entirely approved by: bde
|
36119 |
17-May-1998 |
phk |
s/nanoruntime/nanouptime/g s/microruntime/microuptime/g
Reviewed by: bde
|
36004 |
13-May-1998 |
phk |
The PnP code in 2.2.6 detects the Motorola ModemSurfer 56K, but doesn't do much of anything with it. I added it to siopnp_ids[] and it was found and recognized as a serial port.
PR: 6605 Reviewed by: phk Submitted by: Dave Marquardt <marquard@zilker.net>
|
35815 |
06-May-1998 |
julian |
There is no dump routine for fd so give it an explicit NULL entry in the SLICE table.
|
35812 |
06-May-1998 |
julian |
Add dump support to the DEVFS/slice code. now we can actually catch our crashes :-)
Submitted by: Luoqi Chen <luoqi@chen.ml.org> (the man who's everywhere)
|
35686 |
04-May-1998 |
phk |
Detect USR PnP x2 modem. PR: 6496 Reviewed by: phk Submitted by: Kurt D. Zeilenga <Kurt@Boolean.NET>
|
35386 |
22-Apr-1998 |
julian |
close() is no longer a SLICE method. Close is simply an open with no-read and no-write once internal to SLICE (it still exports a close to the rest of the kernel)
|
35319 |
19-Apr-1998 |
julian |
Add changes and code to implement a functional DEVFS. This code will be turned on with the TWO options DEVFS and SLICE. (see LINT) Two labels PRE_DEVFS_SLICE and POST_DEVFS_SLICE will deliniate these changes.
/dev will be automatically mounted by init (thanks phk) on bootup. See /sys/dev/slice/slice.4 for more info. All code should act the same without these options enabled.
Mike Smith, Poul Henning Kamp, Soeren, and a few dozen others
This code does not support the following: bad144 handling. Persistance. (My head is still hurting from the last time we discussed this) ATAPI flopies are not handled by the SLICE code yet.
When this code is running, all major numbers are arbitrary and COULD be dynamically assigned. (this is not done, for POLA only) Minor numbers for disk slices ARE arbitray and dynamically assigned.
|
35256 |
17-Apr-1998 |
des |
Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.
|
35248 |
17-Apr-1998 |
des |
Stop the screensaver before switching consoles.
|
35223 |
16-Apr-1998 |
des |
Swapped "should we just return" and "should we stop the screensaver" in scrn_timer() to avoid deadlock with graphical screensavers.
|
35035 |
05-Apr-1998 |
tegge |
Remove some unneeded statements that enabled interrupts.
|
35030 |
04-Apr-1998 |
yokota |
More fixes to deal with fonts: - Set the correct value scp->font_size in init_scp(). - Set scp->font_size to FONT_NONE for VGA_MODEX.
Interim fix for a font problem: - A kludge to display the correct font on some video cards. We should be able to load multiple fonts to the VGA plane #2 and switch between fonts by setting the font select register in the VGA sequencer. It appears that the current code isn't functioning as expected on some VGA cards (I have reports on Millenium and Mach64 cards). This is either a bug in syscons or a hardware compatibility problem ;-< This kludge will always load only one font set at a time and always use the font page #0 on the plane #2. It is an interim kludge until we find the exact cause and solution.
Small adjustment for mouse cursor handling: - Turn off the mouse cursor early when changing video modes.
Video mode switch fixes: - Stop the screen saver when changing video modes. - Enclose the critical section with a pair of spltty()/splx(). - A kludge to prevent scrn_update() from accessing video memory in less- critical sections in video mode change; artificially turn on the UNKNOWN_MODE flag.
PR: bin/5899, bin/5907 Tested by: ache and a couple of users OKed by: sos
|
35029 |
04-Apr-1998 |
phk |
Time changes mark 2:
* Figure out UTC relative to boottime. Four new functions provide time relative to boottime.
* move "runtime" into struct proc. This helps fix the calcru() problem in SMP.
* kill mono_time.
* add timespec{add|sub|cmp} macros to time.h. (XXX: These may change!)
* nanosleep, select & poll takes long sleeps one day at a time
Reviewed by: bde Tested by: ache and others
|
34961 |
30-Mar-1998 |
phk |
Eradicate the variable "time" from the kernel, using various measures. "time" wasn't a atomic variable, so splfoo() protection were needed around any access to it, unless you just wanted the seconds part.
Most uses of time.tv_sec now uses the new variable time_second instead.
gettime() changed to getmicrotime(0.
Remove a couple of unneeded splfoo() protections, the new getmicrotime() is atomic, (until Bruce sets a breakpoint in it).
A couple of places needed random data, so use read_random() instead of mucking about with time which isn't random.
Add a new nfs_curusec() function.
Mark a couple of bogosities involving the now disappeard time variable.
Update ffs_update() to avoid the weird "== &time" checks, by fixing the one remaining call that passwd &time as args.
Change profiling in ncr.c to use ticks instead of time. Resolution is the same.
Add new function "tvtohz()" to avoid the bogus "splfoo(), add time, call hzto() which subtracts time" sequences.
Reviewed by: bde
|
34924 |
28-Mar-1998 |
bde |
Moved some #includes from <sys/param.h> nearer to where they are actually used.
|
34617 |
16-Mar-1998 |
phk |
Be less draconian about the TSC if APM is configured, use it for timecounting if APM-BIOS isn't found. Be just as draconian about SMP as always, but explain it better.
|
34571 |
14-Mar-1998 |
tegge |
On SMP systems, initially follow the MP spec with regard to which pin on the IOAPIC being connected to the 8254 timer interrupt. Verify that timer interrupts are delivered. If they aren't, attempt a fallback to mixed mode (i.e. routing the timer interrupt via the 8259 PIC).
|
34058 |
05-Mar-1998 |
tegge |
Remove special handling for resuming clock interrupt when using APIC_IO. The `generic' vector stubs do the right thing.
|
33929 |
28-Feb-1998 |
phk |
Prevent the TSC from being used on APM machines, we have no idea if it runs at a constant frequency. This was less of an issue before, because the TSC only interpolated in the HZ intervals, but now where the timecounter is used all the way, this becomes much more visible.
Nit: Fix a printf which triggered the bde-filter.
|
33864 |
27-Feb-1998 |
msmith |
PCCARD-code related style nits, as requested. Submitted by: bde
|
33860 |
27-Feb-1998 |
msmith |
Fix some style nits and remove an unused header. Submitted by: bde
|
33753 |
23-Feb-1998 |
bde |
Quick fix for the i8254 timecounter often gaining 10 msec.
|
33727 |
21-Feb-1998 |
jkh |
Add missing CLOCK_UNLOCK() before write_eflags(). Submitted by: dave adkins <adkin003@tc.umn.edu>
|
33690 |
20-Feb-1998 |
phk |
Replace TOD clock code with more systematic approach.
Highlights: * Simple model for underlying hardware. * Hardware basis for timekeeping can be changed on the fly. * Only one hardware clock responsible for TOD keeping. * Provides a real nanotime() function. * Time granularity: .232E-18 seconds. * Frequency granularity: .238E-12 s/s * Frequency adjustment is continuous in time. * Less overhead for frequency adjustment. * Improves xntpd performance.
Reviewed by: bde, bde, bde
|
33350 |
14-Feb-1998 |
nate |
- If a PCCARD serial device is removed from the system, let the serial driver 'break out' of the infinite loop waiting for a response from it. This is a bad thing, but no worse than having the kernel hang.
|
33327 |
13-Feb-1998 |
phk |
Fix a couple of lines that dropped out in my merge yesterday.
Complained about by: ache
|
33322 |
13-Feb-1998 |
phk |
Implement the spirit but not the letter of Terrys hot-char patch.
The differences Terrys patch and this patch are: * Remove a lot of un-needed comments. * Don't put l_hotchar at the front of stuct linesw, there is no need to. * Use the #defines for the hotchar in the SLIP and PPP line disciplines
|
33321 |
13-Feb-1998 |
phk |
Hmm, it is generally an advantage to commit the most recent version of ones changes: A faster character painter procedure and fix on cursor bug.
|
33312 |
13-Feb-1998 |
bde |
Don't (conditionally) override the kernel's min() and max() functions with macros. This breaks if the functions are replaced by macros with unsuitable semantics. Define a MAX() macro unconditionally instead. max() is unsuitable since we need a constant expression. Don't define MIN() - we never used min().
|
33309 |
13-Feb-1998 |
bde |
Update timer0_prescaler_count before calling hardclock() while timer0 is "acquired". This fixes a TSC biasing error of about 10 msec when pcaudio is active.
Update `time' before calling hardclock() when timer0 is being released. This is not known to be important.
Added some delays in writertc(). Efficiency is not critical here, unlike in rtcin(), and we already use conservative delays there.
Don't touch the hardware when machdep.i8254_freq is being changed but the maximum count wouldn't change. This fixes jitter of up to 10 msec for most small adjustments to machdep.i8254_freq. When the maximum count needs to change, the hardware should be adjusted more carefully.
|
33283 |
12-Feb-1998 |
phk |
Add support for VESA mode 0x102 (800x600x4) in syscons. You can activate this using option "-b" to the boot blocks. It is smartest to compile a font into your kernel (See LINT), but not mandatory, but apart from the cursor you will see nothing on the screen until you load a font.
This mode allows XF86_VGA16 to run in 800x600 mode on otherwise unsupported graphics hardware.
A number of buglets in the cursor handling in syscons may become visible this way.
|
33280 |
12-Feb-1998 |
phk |
Fix a white-space nit which I happened to notice.
|
33272 |
12-Feb-1998 |
yokota |
Oops, sorry, a #define line for my debugging session slipped into the last commit ;-<
|
33242 |
11-Feb-1998 |
yokota |
- Move the mouse cursor to the center of the screen after video mode switch in ioctl. Possibly related to PR: kern/4271
- A kludge: initialize scp->xpixel and ypixel even in the text mode. If the console enters the `unknown' graphics mode via the ioctl KDSETMODE (KD_GRAPHICS), these fields are not set (because syscons cannot know the correct values), but set_mouse_pos() need to refer to these field to adjust the mouse position.
- Turn off MOUSE_VISIBLE when switching video mode by ioctl.
- another new option: SC_MOUSE_CHAR Define the first character code of four consecutive codes to be used for the mouse cursor. Default codes are 0xd0 through 0xd3. Beware that if you decide to use any codes outside the range of 0xc0-0xdf, the mouse cursor may not look good, because of the way VGA displays characters in 9-dot-wide character cells. Requested by several people.
(This patch was tested by a person who recently reported, in the -current ML, a page fault problem in the kernel (draw_mouse_iamge()) after X server shutdown. The patch cured his problem.)
|
33241 |
11-Feb-1998 |
yokota |
- A new semaphore: font_loading_in_progress. Don't touch/update the screen while manipulating font data. Possibly related to PR: kern/4271
- Set up VGA in alphanumeric mode rather than graphics mode when loading font into video memory. This will drastically reduce flicker. PR: bin/2977
- Set up scp->font_size properly during video mode switch caused by ioctl.
|
33240 |
11-Feb-1998 |
yokota |
- Break scrn_timer() into two pieces. Now screen update is done in a separate routine: scupdate() called from scrn_timer().
- Make sure that the screen is updated for the low-level console routines sccngetc() and sccncheckc(). A new routine, sccnupdate(), is introduced and will call scupdate() above. Requested by: bde and msmith
OKed by: sos
|
33239 |
11-Feb-1998 |
yokota |
- Ignore KBD_RAW_MODE and KBD_CODE_MODE in scgetc() when it's called from the low-level console routines sccngetc() and sccncheckc(). Submitted by: bde (a long time ago)
- Don't try to ring bell and immediately return from do_bell() while device probe is in progress at boot time; the timeout queue is not functional yet. PR: kern/2424
- Stop running the screen saver after panic() is called: check if `panicstr' is non-NULL during scrn_timer(). PR: kern/5314
- A new option: SC_DISABLE_REBOOT The reboot key (usually Ctl-Alt-Del) will be ignored if this option is defined. You may still have the reboot key defined in the keymap and it won't cause error when the keymap is loaded, but it will be quietly treated as nop.
OKed by: sos
|
33181 |
09-Feb-1998 |
eivind |
Staticize.
|
32850 |
28-Jan-1998 |
phk |
APM calls inittodr(0) which is stupid, but at least stop setting the clock back to when Dennis had a good idea.
|
32849 |
28-Jan-1998 |
yokota |
Define CTL-ALT-ESC as the `debug' key, CTL-ALT-SPACE as the `suspend'key in all built-in keymaps.
|
32726 |
24-Jan-1998 |
eivind |
Make all file-system (MFS, FFS, NFS, LFS, DEVFS) related option new-style.
This introduce an xxxFS_BOOT for each of the rootable filesystems. (Presently not required, but encouraged to allow a smooth move of option *FS to opt_dontuse.h later.)
LFS is temporarily disabled, and will be re-enabled tomorrow.
|
32633 |
20-Jan-1998 |
yokota |
- Add binary compatibility support for obsolete console/mouse ioctls so that existing programs which were compiled before the introduction of the new mouse code and use these ioctls will run unmodified.
Suggested by msmith.
|
32487 |
12-Jan-1998 |
yokota |
Fix illegal numeric expressions: 08 and 09.
|
32457 |
12-Jan-1998 |
julian |
add devfs entries for a few more syscons devices (e.g. sysmouse)
|
32364 |
09-Jan-1998 |
yokota |
- Produce the accent letter if the user hits the accent key twice. (accent_key + space does still print the accent letter too, as in the previous commit.) Requested by a couple of users. - Clear the accent flag when the next_screen key is pressed. - Added some comment lines regarding accent key processing.
|
32331 |
08-Jan-1998 |
amurai |
1. Supporting a bogus 16550A compatible PCMCIA CARD stuffs - IIR_TXRDY is never off even if reading a IIR register. - Know as PIAFS "Palido 321S", "DC-*S" oemed by Sharp corp.
2. Omiting a restrict probing if it's already probed by pccardd. Note: Define a new id_flags as follows
0x40000 - NO PROBE (Already probed as serial) 0x80000 - Has a bogus IIR_TXRDY register
Sato Junichi <junichi@astec.co.jp> Nrihiro Kumagai <kuma@slab.tnr.sharp.co.jp> Hirao Tetsuya <ai.cs.fujitsu.co.jp> Toshiharu Asai <asai@mbc.infoshere.or.jp> Shin'ya Kumabuchi <kumabu@t3.rim.or.jp> Freebsd-users-jp@jp.freebsd.org bsd-nomads@ai.cs.fujitsu.co.jp
|
32315 |
07-Jan-1998 |
yokota |
Added accent (dead) key support to syscons and kbdcontrol.
With a keymap with accent key definitions loaded to syscons, you press an accent key followed by a regular letter key to produce an accented letter. Press an accent key followed by the space bar to get the accent letter itself.
Code is based on the ideas and work by jmrueda@diatel.upm.es and totii@est.is.
PR: i386/4016
console.h - Defined structures and constants for accent (dead) keys.
syscons.c, kbdtables.h - When an accent key is pressed, set the corresponding index to `accents'. If the next key is the space key, produce the accent char itself. Otherwise search the accent key map entry, indexed by `accents', for a matching pair of a regular char and an accented char. - Added ioctl functions to set and get the accent key map (PIO_DEADKEYMAP and GIO_DEADKEYMAP).
|
32054 |
28-Dec-1997 |
phk |
More cleanup relating to our use of the TSC. Look in the cpu_feature (CPUID output) to see if we have it.
|
32052 |
28-Dec-1997 |
phk |
wash, sort and put in order various nits from the i586_ctr -> tsc commit.
Pointed out by: bde
|
32047 |
28-Dec-1997 |
bde |
Fixed initialization of the divisor latch. We depended on siocnopen() initializing it for the (usual) (siocniobase != 0) case, but siocnopen() doesn't initialize it if the latch registers already have the correct values.
|
32044 |
28-Dec-1997 |
bde |
Always call ttwwakeup() before returning from comstart(). It isn't necessary to call it when the tty layer's output state has not been changed, but siostop() sometimes changes the TS_BUSY state and then calls comstart() mainly for its side effect of calling ttwwakeup().
|
32005 |
26-Dec-1997 |
phk |
Rename "i586_ctr" to "tsc" (both upper and lower case instances). Fix a couple of printfs too.
Warning: This changes the names of a couple of kernel options!
|
31778 |
16-Dec-1997 |
eivind |
Make COMPAT_43 and COMPAT_SUNOS new-style options.
|
31603 |
07-Dec-1997 |
yokota |
- Add support for the following mice to psm/moused/sysmouse:
MS IntelliMouse, Kensington Thinking Mouse, Genius NetScroll, Genius NetMouse, Genius NetMouse Pro, ALPS GlidePoint, ASCII MieMouse, Logitech MouseMan+, FirstMouse+
- The `psm' driver is made to recognize various models of PS/2 mice and enable their extra features so that their additional buttons and wheel/roller are recognized. The name of the detected model will be printed at boot time.
- A set of new ioctl functions are added to the `psm', `mse' and `sysmouse' drivers so that the userland program (such as the X server) can query device information and change driver settings.
- The wheel/roller movement is handled as the `Z' axis movement by the mouse drivers and the moused daemon. The Z axis movement may be mapped to another axis movement or buttons.
- The mouse drivers support a new, standard mouse data format, MOUSE_PROTO_SYSMOUSE format which can encode x, y, and x axis movement and up to 10 buttons.
/sys/i386/include/mouse.h - Added some fields to `mousestatus_t' to store Z axis movement and flag bits. - Added the field `model' to `mousehw_t' to store mouse model code. Defined model codes. - Extended `mousemode_t'. - Added new protocols and some constants for them. - Added new ioctl functions and structures. - Removed obsolete ioctl definitions.
/sys/i386/include/console.h - Added `dz' field to the structure `mouse_data' to pass Z axis movement to `syscons/sysmouse'. - Removed LEFT_BUTTON, MIDDLE_BUTTON and RIGHT_BUTTON. Use button bits defined in `mouse.h' instead.
/sys/i386/isa/psm.c - Added a set of functions to detect various mice which have additional features (wheel and buttons) unavailable in the standard PS/2 mouse. - Refined existing ioctl functions and added new ones. Most important of all is MOUSE_SETLEVEL which manipulates the output level of the driver. While the output level remains zero, the output from the `psm' driver is in the standard PS/2 mouse format (three bytes long). When the level is set to one, the `psm' driver will send data in the extended format. At the level two the driver uses the format which is native to the connected mouse is used. (Meaning that the output from the device is passed to the caller as is, unmodified.) The `psm' driver will pass such extended data format as is to the caller if the output level is two, but emulates the standard format if the output level is zero. - Added kernel configuration flags to set initial resolution (PSM_CONFIG_RESOLUTION) and acceleration (PSM_CONFIG_ACCEL). - Removed the compile options PSM_ACCEL, PSM_CHECKSYNC and PSM_EMULATION. Acceleration ratio is now specified by the kernel configuration flags stated above. Sync check logic is refined and now standard. The sync check can be turned off by the new kernel configuration flags PSM_CONFIG_NOCHECKSYNC (0x100). PSM_EMULATION has been of little use. - Summer clean up :-) Removed unused code and obsolete comments.
/sys/i386/isa/mse.c - Created mseioctl() to deal with ioctl functions MOUSE_XXXX. Most importantly, the MOUSE_SETLEVEL ioctl will change the output format from the 5 byte format to the new, extended format so that the caller can take advantage of Z axis movement and additional buttons. - Use constants defined in `mouse.h' rather than magic numbers.
/sys/i386/isa/syscons.c - Changed scioctl() to reflect the new `console.h' and some of the new ioctls defined in `mouse.h'. Most importantly, the MOUSE_SETLEVEL ioctl will change the `sysmouse' output format from the MouseSystems 5 byte format to the new, extended format so that the caller can take advantage of Z axis movement and additional buttons. - Added support for double/triple click actions of the left button and single click action of the right button in the virtual console. The left button double click will select a word under the mouse pointer. The triple click will select a line and the single click of the right button will extend the selected region to the current position of the mouse pointer. This will make the cut/paste support more compatible with xterm.
/sys/i386/isa/kbdio.h - Added PSM_INTELLI_ID.
|
31577 |
06-Dec-1997 |
bde |
Use ENOIOCTL instead of -1 (= ERESTART) for tty ioctls that are not handled at a particular level. This fixes mainly restarting of interrupted TIOCDRAINs and TIOCSETA{W,F}s.
|
31493 |
02-Dec-1997 |
phk |
In all such uses of struct buf: 's/b_un.b_addr/b_data/g'
|
31412 |
25-Nov-1997 |
sos |
Move the hardware currsor off screen when getting back from an unknown mode. Fix warning on uninitialized var.
|
31334 |
21-Nov-1997 |
yokota |
Make comp_vgaregs() less strict about VGA register values when checking the BIOS video mode paramter table. Now syscons uses the parameter table even if some bits in the table are different from the current VGA register settings.
Even if comp_vgaregs() finds that the BIOS video parameter table looks totally unfamiliar to it, syscons allows the user to change the current video mode to some modes which are based on the VGA 80x25 mode. They are VGA 80x30, VGA 80x50, VGA 80x60. In this case the user will be warned, during boot, that video mode switching is only paritally supported on his machine.
PR: bin/4477
|
31311 |
20-Nov-1997 |
nate |
- Renamed <pccard/card.h> -> <pccard/cardinfo.h>.
Forgotten by: me Reminded by: Bruce
|
31253 |
18-Nov-1997 |
bde |
Removed #unused includes.
Added a used #include (don't depend on yet to be fixed namespace pollution).
|
31017 |
07-Nov-1997 |
phk |
Rename some local variables to avoid shadowing other local variables.
Found by: -Wshadow
|
31016 |
07-Nov-1997 |
phk |
Remove a bunch of variables which were unused both in GENERIC and LINT.
Found by: -Wunused
|
30900 |
02-Nov-1997 |
nate |
- MF22: (I reversed these). Simplify code.
|
30805 |
28-Oct-1997 |
bde |
Don't include <machine/cputypes.h> or declare cputype/class interfaces in <machine/cpu.h>. Moved the declarations to <machine/cputypes.h>. Fixed style bugs in the moved code. Fixed everything that depended on the nested include. Don't include <machine/cpu.h> (in the changed files) unless something in it is used directly.
|
30747 |
26-Oct-1997 |
nate |
- Instead of relying on a functional call to register PCARD-capable drivers, use a Linker Set. Note, if a driver is loaded as an LKM if will have to use the function call, but since none of the existing drivers are loadable, this made things cleaner and boot messages nicer.
Obtained from: PAO-970616
|
30726 |
26-Oct-1997 |
yokota |
- Slightly change the way the border color register is updated so that flicker won't occur when set_border() is called.
- Properly restore the border color when switching virtual consoles.
Pointed out by: tony@dell.com OKed by: sos
|
30721 |
26-Oct-1997 |
nate |
- Functional changes to PCCARD support. * Kill individual drivers 'suspend' routines, since there's no simple/safe way to suspend/resume a card w/out going through the complete probe at initialization time. * Default to using the apm_pccard_resume sysctl code, which basically pretends the card was removed, and then re-inserted. Suspend/resume is now 'emulated' with a fake insert/removal. (Hence we no longer need the driver-specific suspend routines.)
|
30720 |
26-Oct-1997 |
nate |
- Do a bunch of gratuitous changes intended to make the code easier to follow. * Rename/reorder all of the pccard structures, change many of the member names to be descriptive, and follow more closely other 'bus' drivers naming schemes. * Rename a bunch of parameter and local variable names to be more consistant in the code. * Renamed the PCCARD 'crd' device to be the 'card' device * KNF and make the code consistant where it was obvious. * ifdef'd out some unused code
|
30662 |
23-Oct-1997 |
yokota |
Reject unreasonable values passed to CONS_HISTORY ioctl. It did not check the value and caused kernel panic when a large value was given.
- Move the configuration option SC_HISTORY_SIZE from syscons.h to syscons.c. - Define the maximum total number of history lines of all consoles. It is SC_HISTORY_SIZE*MAXCONS or 1000*MAXCONS; whichever is larger. CONS_HISTORY will allow the user to set the history size up to SC_HISTORY_SIZE unconditionally (or the current height of the console if it is larger than SC_HISTORY_SIZE). If the user requests a larger buffer, it will be granted only if the total number of all allocated history lines and the requested number of lines won't exceed the maximum. - Don't free the previous history buffer and leave the history buffer pointer holding a invalid pointer. Set the pointer to NULL first, then free the buffer.
PR: bin/4592
|
30574 |
19-Oct-1997 |
joerg |
Introduce a device flags value of 0x1 to always pretend a 1.44 MB floppy drive #0, regardless of what the CMOS says. This is intended as a bandaid for those plagued with Compaq's idea to not announce the floppy drive on their `Aero' notebook.
Using the device flags is not very nice (in particular since they aren't per-drive but per-controller), but still looks a lot better to me than the disgusting guesswork hack that was recently posted to -hackers.
Doc update will follow shortly.
|
30354 |
12-Oct-1997 |
phk |
Last major round (Unless Bruce thinks of somthing :-) of malloc changes.
Distribute all but the most fundamental malloc types. This time I also remembered the trick to making things static: Put "static" in front of them.
A couple of finer points by: bde
|
30351 |
12-Oct-1997 |
jkh |
Back out my LALT -> META change until we figure out a way to make it work sympathetically with the function keys.
|
30266 |
10-Oct-1997 |
jkh |
Change default keymap (I left all the international ones alone) so that LALT is META by default. This will make the emacs users happy. Approved by: sos
|
30043 |
01-Oct-1997 |
sos |
Add a new keyboard mode K_CODE. Returns a single byte for each key much like the scancode mode. However the keys that (for no good reason) returns extension codes etc, are translated into singlebyte codes. Needed by libvgl. This makes life ALOT easier, also the XFree86 folks could use this.
|
29875 |
26-Sep-1997 |
itojun |
tiny update of ESC sequence parser. - some addition of comments (for readability) - iso-2022 G0 designation support. This does almost nothing. Just for avoiding garbled screen when got "ESC ( B". (how about G1/2/3 designation? I'm not sure)
|
29752 |
23-Sep-1997 |
gibbs |
Fix a call to timeout that wasn't properly saving it's callout handle.
Submitted by: durian@plutotech.com
|
29677 |
21-Sep-1997 |
gibbs |
aha1542.c aic6360.c cy.c fd.c ft.c if_ie.c if_wl.c if_zp.c isa.c isa_device.h labpc.c mcd.c ncr5380.c scd.c seagate.c si.c sio.c tw.c ultra14f.c wcd.c wd.c:
Update for changes in the callout interface.
apic_vector.s icu_vector.s ipl.s ipl_funcs.c:
Add CAM software/hardware interrupt support.
|
29614 |
19-Sep-1997 |
jmg |
teach sio how to attach to isa PnP cards. This is mainly for use with internal modems. Currently detects a USR modem, and a couple Supra modems... vendor id's for sio capabile cards welcomed...
document new option EXTRA_SIO that will increase sio's internal data structures to support X more serial ports... these are used by the PnP part of sio for attaching... If you don't have it specified, it will default to 2... This is defaulted to 0 if you don't have PnP compiled into your kernel...
also document that if you set the PnP flags (pnp x flags y) to 0x1 that the modem will be refused to be recognized by the sio driver... this is for people that want the traditional isa driver to probe and attach the modem... (for keeping legacy sio numbering)
|
29543 |
17-Sep-1997 |
tegge |
Enable the FIFO on enhanced floppy controllers. This reduces the number of dma overruns/underruns for systems under heavy dma load. As a side effect, broken enhanced floppy controllers that sometimes don't detect dma overruns/underruns will give less errors.
Reviewed by: j@uriah.heep.sax.de (J Wunsch)
|
29494 |
16-Sep-1997 |
joerg |
Make FDC_DEBUG a supported option.
Hide the bogus FDC ``chip type'' display behind a (mostly) undocumented option, since people started to trust the bogus claim. Once we're going to handle 2.88 MB controllers, we have to redo the chip detection, by now just leave it hidden.
|
29368 |
14-Sep-1997 |
peter |
Update select -> poll in drivers.
|
29121 |
04-Sep-1997 |
yokota |
Add a new compile option SC_HISTORY_SIZE to specify the history buffer size in terms of lines (instead of bytes). When changing video mode in ioctl SW_XXX commands, syscons checks scp->history_size and allocate a history buffer at least as large as the new screen size. (This was unnecessary before, because HISTORY_SIZE was as large as 100 lines and this is bigger than the maximum screen size: 60 lines). Similar adjustment is done in ioctl CONS_HISTORY command too.
PR: kern/4169 Reviewed by: sos
|
29000 |
01-Sep-1997 |
fsmp |
General cleanup of the sub-system locking macros. Eliminated the RECURSIVE_MPINTRLOCK. clock.c and microtime use clock_lock. sio.c and cy.c use com_lock.
Suggestions by: Bruce Evans <bde@zeta.org.au>
|
28987 |
01-Sep-1997 |
bde |
Removed unused #includes.
|
28950 |
31-Aug-1997 |
fsmp |
Created a private simple_lock to control accesses to com data structs and hardware. There is now another simple_lock around clock data/hardware accesses in clock.c and microtime.s. It is my belief that this is the only area sio/cy might stumble into during an unblocked INTerrupt. Thus I separated the sio/cy code from the generic disable_intr()/enable_intr() routines.
Controlled by smptests.h: USE_COMLOCK, ON by default.
|
28921 |
30-Aug-1997 |
fsmp |
Another round of lock pushdown. Add a simplelock to deal with disable_intr()/enable_intr() as used in UP kernel. UP kernel expects that this is enough to guarantee exclusive access to regions of code bracketed by these 2 functions. Add a simplelock to bracket clock accesses in clock.c: clock_lock.
Help from: Bruce Evans <bde@zeta.org.au>
|
28759 |
25-Aug-1997 |
bde |
Removed unused misplaced definition of TIMER_FREQ.
Use less-magic numbers in the definition of HISTORY_SIZE.
|
28551 |
21-Aug-1997 |
bde |
#include <machine/limits.h> explicitly in the few places that it is required.
|
28495 |
21-Aug-1997 |
fsmp |
Fixed a warning about undefined isa_irq_pending(). (UP kernel only)
|
28491 |
21-Aug-1997 |
fsmp |
Moved the COM_LOCK and COM_UNLOCK macros to machine/param.h.
|
28487 |
21-Aug-1997 |
fsmp |
Made PEND_INTS default. Made NEW_STRATEGY default. Removed misc. old cruft.
Centralized simple locks into mp_machdep.c Centralized simple lock macros into param.h
More cleanup in the direction of making splxx()/cpl MP-safe.
|
28442 |
20-Aug-1997 |
fsmp |
Preperation for moving cpl into critical region access. Several new fine-grained locks. New FAST_INTR() methods: - separate simplelock for FAST_INTR, no more giant lock. - FAST_INTR()s no longer checks ipending on way out of ISR. sio made MP-safe (I hope).
|
28259 |
16-Aug-1997 |
msmith |
Minor ppc_data structure tweak. Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
|
28221 |
14-Aug-1997 |
msmith |
ISA Parallel-Port Bus chipset driver. Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
|
28022 |
09-Aug-1997 |
sos |
Fix the checks for screenborder for the mousepointer.
|
27990 |
08-Aug-1997 |
sos |
Yeah I'm back hacking syscons !!
Add support for MODEX 320x240x256color with "unchained" adressing, giving access to all 256K on all VGA's, those with that much memory that is :)
Also make sysmouse use the right resolution in graphics modes.
|
27895 |
04-Aug-1997 |
fsmp |
Added include of intr_machdep.h to eliminate compiler warning for APIC_IO.
|
27699 |
26-Jul-1997 |
phk |
Fix a brino in my last commit.
Noticed by: smp
|
27696 |
26-Jul-1997 |
fsmp |
clock.c: - removed TEST_ALTTIMER. - removed APIC_PIN0_TIMER. - removed TIMER_ALL.
apic_vector.s: - new algorithm where a CPU uses try_mplock instead of get_mplock: if successful continue as before. if fail set ipending bit, mask INT (to avoid recursion), cleanup & iret.
This allows the CPU to return to successful work, while the ISR will be run by the CPU holding the lock as part of the doreti dance.
|
27674 |
25-Jul-1997 |
phk |
Add option for compiling in a 8x16 font.
|
27616 |
22-Jul-1997 |
fsmp |
Last commit didn't take, operator error???
|
27563 |
20-Jul-1997 |
fsmp |
Developed a new strategy for handling the 8254/8259/APIC issue.
|
27560 |
20-Jul-1997 |
fsmp |
Minor cleanup.
|
27555 |
20-Jul-1997 |
bde |
Removed unused #includes.
|
27522 |
19-Jul-1997 |
fsmp |
Added #code to support define APIC_PIN0_TIMER. This code ALWAYS runs the 8254 timer thru the 8259 ICU. It depricates the usage of "options SMP_TIMER_NC" in the config file.
|
27520 |
19-Jul-1997 |
fsmp |
SMP or APIC_IO: - Increased NIDT to 256. - Moved IPI vectors up above the linux compat vector. - Removed runtime setup of RTC vector.
|
27490 |
18-Jul-1997 |
fsmp |
Made the printing of the APIC INTs depend on bootverbose.
|
27466 |
17-Jul-1997 |
dyson |
Add some support for the 16650 type UARTS.
|
27426 |
15-Jul-1997 |
yokota |
Screen saver related fixes.
1. Add new interface, add_scrn_saver()/remove_scrn_saver(), to declare loading/unloading of a screen saver. The screen saver calls these functions to notify syscons of loading/unloading events.
It was possible to load multiple savers each of which will try to remember the previous saver in a local variable (`old_saver'). The scheme breaks easily if the user load two savers and unload them in a wrong order; if the first saver is unloaded first, `old_saver' in the second saver points to nowhere.
Now only one screen saver is allowed in memory at a time.
Soeren will be looking into this issue again later. syscons is becoming too heavy. It's time to cut things down, rather than adding more...
2. Make scrn_timer() to be the primary caller of the screen saver (*current_saver)(). scintr(), scioctl() and ansi_put() update `scrn_time_stamp' to indicate that they want to stop the screen saver.
There are three exceptions, however.
One is remove_scrn_saver() which need to stop the current screen saver if it is running. To guard against scrn_timer() calling the saver during this operation, `current_saver' is set to `none_saver' early.
The others are sccngetc() and sccncheckc(); they will unblank the screen too. When the kernel enters DDB (via the hot key or a break point), the screen saver will be stopped by sccngetc(). However, we have a reentrancy problem here. If the system has been in the middle of the screen saver...
(The screen saver reentrancy problem has always been with sccnputc() and sccngetc() in the -current source. So, the new code is doing no worse, I reckon.)
3. Use `mono_time' rather than `time'.
4. Make set_border() work for EGA and CGA in addition to VGA. Do nothing for MDA.
Changes to the LKM screen saver modules will follow shortly. YOU NEED TO RECOMPILE BOTH SCREEN SAVERS AND KERNEL AS OF THESE CHANGES.
Reviewed by: sos and bde
|
27385 |
14-Jul-1997 |
yokota |
scgetc() referred to `spcl' in different ways when a key is pressed and released. It should use `spcl' consistently in both cases, otherwise shift/control/alt state may not be correctly set/reset.
(Even with this fix, you can still make syscons confused and fail to change internal state if you really want to, by installing a really arcane and artificial keymap.)
PR: i386/4030 Reviewed by: sos
|
27352 |
13-Jul-1997 |
fsmp |
Cleanup old stop_cpus/restart_cpus() cruft. new code for handling mixed-mode 8259/APIC programming without 'ExtInt' new code to control other CPUs: stop_cpus()/restart_cpus()/_Xstopcpu
|
27293 |
09-Jul-1997 |
brian |
Don't allow CONS_HISTORY ioctl to alter history pointers while in "scroll mode" (return EBUSY). Suggested by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
27276 |
08-Jul-1997 |
brian |
Remove useless comparison.
Suggested by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
27263 |
07-Jul-1997 |
brian |
YAMF2.2: Handle indirect results of "kbdcontrol -h X" where X < 25.
|
27114 |
30-Jun-1997 |
yokota |
Fixes annoying behavior and a bug regarding the destructive cursor (CHAR_CURSOR)
1. Reduced the number of calls to set_destructive_cursor(). The destructive cursor produced noticeable overhead on the system. It was caused by draw_cursor_image() calling set_destructive_cursor() every so often.
set_destructive_cursor() absolutely needs to be called when
a) the character code under the cursor has changed either because the cursor moved or because the screen was updated or the mouse pointer overlapped the cursor. b) Or a new font has been loaded, c) or the video mode has been changed, d) or the cursor shape has been changed, e) or the user switched virtual consoles.
2. Turn off the configuration flag CHAR_CURSOR (destructive cursor) in scattach() if we have a non-VGA card. The destructive cursor works only for VGA.
3. Removed redundant calls to set_destructive_cursor() in some places.
4. Fixed the "disappearing mouse pointer" problem. The mouse pointer looked hidden under the destructive cursor when it overlaped the cursor.
A slightly different version of the patch was reviewd and OKed by sos and ache.
|
27084 |
29-Jun-1997 |
ache |
dev->id_flags --> flags (not compiles otherwise)
|
27063 |
29-Jun-1997 |
yokota |
A fix/work-around for ThinkPad 535.
Add a new configuration flag, KBD_NORESET (0x20) to tell scprobe() not to reset the keyboard.
IBM ThinkPad 535 has the `Fn' key with which the user can perform certain functions in conjunction with other keys. For example, `Fn' + PageUP/PageDOWN adjust speaker volume, `Fn' + Home/End change brightness of LCD screen. It can also be used to suspend the system.
It appears that these functions are implemented at the keyboard level or the keyboard controller level and totally independent from BIOS or OS. But, if the keyboard is reset (as is done in scprobe()), they become unavailable. (There are other laptops which have similar functions associated with the `Fn' key. But, they aren't affected by keyboard reset.)
ThinkPad 535 doesn't have switches or buttons to adjust brightness and volume, or to put the system into the suspend mode. Therefore, it is essential to preserve these `Fn' key functions in FreeBSD. The new flag make scprobe() skip keyboard reset.
If this flag is not set, scprobe() behaves in the same say as before.
(If we only knew a way to detect ThinkPad 535, we could skip keyboard reset automatically, but...)
|
26949 |
25-Jun-1997 |
fsmp |
Modified to use merged/renamed functions:
- get_isa_apic_mask() -> isa_apic_mask() - get_isa_apic_irq() && get_eisa_apic_irq() -> isa_apic_pin()
|
26807 |
22-Jun-1997 |
yokota |
The syscons driver doesn't really check the presence of the display adapter during the system boot. It always assumes there is at least a monochrome adapter.
This is rather strange assumption. If there is no dispaly adapter, the console driver cannot be any good...
In this patch, scinit() is split into two parts; the first part is now called scvidprobe() which will detect the presence of video card at the CGA or MONO buffer address and returns TRUE if found. It is called during sccnprobe() and scprobe(). Both will fail if no video card is found.
The second part, whose name stays the same as before, scinit(), is called from sccninit() and scattach() to complete initialization of the found video card.
The keyboard probe code is moved from scprobe() to sckbdprobe(); scprobe() now calls scvidprobe() and sckbdprobe() to carry out device probe. (This is rather a cosmetic change, but it sure makes the code look better organized.)
The problem pointed out by Joerg.
|
26446 |
04-Jun-1997 |
pst |
Bring back CONSPEED as a last-ditch default if you can't change the speed any other way.
Requested by: dfr
|
26432 |
04-Jun-1997 |
pst |
If the boot blocks were using the serial port, read the system console speed using the boot blocks, instead of a hardcoded value stuck in the kernel. This way, you can have systems using the same kernel but different console speeds.
Add a sysctl entry for changing the system console speed. Lock the user tty speed to match the system console speed.
Nuke CONSPEED. Reviewed by: bde
|
26373 |
02-Jun-1997 |
dfr |
Move interrupt handling code from isa.c to a new file. This should make isa.c (slightly) more portable and will make my life developing the really portable version much easier.
Reviewed by: peter, fsmp
|
26351 |
01-Jun-1997 |
phk |
I've given up on the idea of sizing FIFO's. You can set it with a flag value now, if you know that you have a fifo deeper than 16.
|
26309 |
31-May-1997 |
peter |
Include file updates.. <machine/spl.h> -> <machine/ipl.h>, add <machine/ipl.h> to those files that were depending on getting SWI_* implicitly via <machine/cpufunc.h>
|
26264 |
29-May-1997 |
peter |
No longer need opt_smp.h here
|
26129 |
25-May-1997 |
fsmp |
Made the array vec[] a global. This allows the APIC code to reorder the vectors at runtime.
|
25899 |
18-May-1997 |
phk |
Whoops, missed a zero there. Flags 0x10000 it is.
|
25898 |
18-May-1997 |
phk |
Flags 0x1000 on sio now disables the dreaded test#3.
PR: 3395
|
25897 |
18-May-1997 |
phk |
Detect various supersets of 16550A based on fifo depth.
PR: i386/3523 Reviewed by: phk Submitted by: vak@cronyx.ru
|
25828 |
15-May-1997 |
yokota |
1) font loading (two fixes)
When an ioctl command SW_XXXX is issued, scioctl() checks if the font appropriate for the specified mode is already loaded. The check was correctly done for 8 line and 16 line fonts, but not for 14 line font.
The symbols FONT_8, FONT_14 and FONT_16 were defined as numbers but were sometimes treated as bit flags. They are now defined as bit flags.
2) screen blinking (two fixes)
Removed a redundant call to timeout() in do_bell().
Don't let blink_screen() write to the video buffer if the screen is in the graphics (UNKNOWN) mode.
3) screen saver timeout
The ioctl command CONS_BLANKTIME sets the screen saver's timeout. The value of zero will disable the screen saver. If the screen saver is currently running it should be stopped.
4) border color and destructive cursor (two fixes)
The border color and the cursor type can be changed via escape sequences. But only VGA can change the border color and set the cursor type to destructive (CHAR_CURSOR) in the current syscons. scan_esc() failed to check this.
Reviewed by: sos
|
25552 |
07-May-1997 |
peter |
simplify IOPL gain/remove privs code. It's easier with md_regs being a trapframe.
|
25527 |
07-May-1997 |
yokota |
Now that we have replaced video-related block copy calls with sc_bcopy(), which is generic_bcopy() in reality, there is no point in retaining bcopyw() calls in the source code. OKed by : sos
|
25485 |
05-May-1997 |
peter |
correct the order of the variables use #ifdef where possible instead of #if defined
Submitted by: the KNF police, ie: bde :-)
|
25457 |
04-May-1997 |
peter |
Don't remove i586_ctr_freq from scope, leave it defined as zero. This simplifies some assumptions and stops some code compile problems.
This should fix the compile hiccup in PR#3491, but smp kernel profiling isn't likely to be fixed by this.
|
25310 |
30-Apr-1997 |
ache |
Restore CRTC start address check back after looking into more sources
|
25293 |
30-Apr-1997 |
ache |
In comp_vgaregs skip cursor shape and 4 unused bytes (6 total) instead of 2 unused. Previus code broke syscons on Diamond Stealth 3D 3000 (video mode ptr was NULL with no real reason)
|
25190 |
27-Apr-1997 |
yokota |
Addresses the following two problems.
1) i586_bcopy() problem
There have been a number of reports that the syscons doesn't work properly if i586_bcopy() is enabled.
The problem prevented users from installing 2.2(.1)-RELEASE. The symptom is that the system looks frozen during device probe or just before the main installation menu. The workaround was to specify the flag 0x01 to the npx device so that i586_bcopy() is disabled.
The patch forces the syscons to call generic_bcopy() when copying to/from the video memory, even if CPU is Pentium and i586_bcopy() is enabled. i586_bcopy() is still called for copy operations between non-video memory regions.
PR: kern/2277, kern/3066, kern/3107, kern/3134
2) video mode parameter table problem
The syscons reads and uses the video mode parameter table provided by the VGA BIOS to set VGA registers when changing video mode and modifying font data. It appears that in some VGA BIOSes the table is not ordered as the syscons expects, and this leads to screen corruption.
The problem prevented users from installing 2.2(.1)-RELEASE. The symptom is the corrupt screen or strange vertical lines soon after the kernel is loaded into memory (just after the kernel decompression).
The patch performs simplistic test and if it fails, set video_mode_ptr to NULL so that the video mode switching won't happen.
This is an interim kludge. There should be a better way to deal with the problem.
PR: kern/2498, conf/2775, conf/3354
Reviewed by: sos Tested by: PR originators (not all of them, though)
|
25164 |
26-Apr-1997 |
peter |
Man the liferafts! Here comes the long awaited SMP -> -current merge!
There are various options documented in i386/conf/LINT, there is more to come over the next few days.
The kernel should run pretty much "as before" without the options to activate SMP mode.
There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment.
This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code!
|
25049 |
20-Apr-1997 |
bde |
Fixed the type of timeout functions and removed casts that hid the type mismatches. Not taking an arg in scrn_timer() broke `cc -mrtd'.
|
25010 |
18-Apr-1997 |
bde |
Don't call timeout() for DTR wakeup or busy check if the relevant timeout is already active. This fixes "timeout table full" panics under 100% interrupt load and other weird conditions.
|
24773 |
10-Apr-1997 |
yokota |
Preserve some bits in the keyboard controller command byte when resetting the keyboard.
Well, sorry, this bug is totally my fault. I DID intend to preserve them, but somehow I failed.
The bug puts some old keyboard controllers in a strange state, resulting in keyboard freeze or random key input.
The fix closes PR kern/3067.
|
24676 |
06-Apr-1997 |
mckay |
Prevent wedging of the stat clock because of missed interrupts. This should cure the "alternate system clock has died!" problem.
Discussed with: bde, joerg
|
24674 |
06-Apr-1997 |
dufault |
Make MOD_* macros almost consistent:
Use the name argument almost the same in all LKM types. Maintain the current behavior for the external (e.g., modstat) name for DEV, EXEC, and MISC types being #name ## "_mod" and SYCALL and VFS only #name. This is a candidate for change and I vote just the name without the "_mod".
Change the DISPATCH macro to MOD_DISPATCH for consistency with the other macros.
Add an LKM_ANON #define to eliminate the magic -1 and associated signed/unsigned warnings.
Add MOD_PRIVATE to support wcd.c's poking around in the lkm structure.
Change source in tree to use the new interface.
Reviewed by: Bruce Evans
|
24652 |
05-Apr-1997 |
bde |
Removed defaults for dead options CONADDR and CONUNIT.
|
24651 |
05-Apr-1997 |
bde |
Use device flags instead of options for serial console configuration (see LINT). There is a new low-level console type that is more suitable for use with gdb-remote.
Fixed setting of speed at probe time for the serial console (if any).
Reviewed by: dfr
|
24598 |
03-Apr-1997 |
brian |
Make the default VERASE key the <-- key and remove root's `stty's. 'nuff said.
Inventor: joerg@FreeBSD.org Reviewer: sos@FreeBSD.org
|
24338 |
28-Mar-1997 |
yokota |
Interim patch/kludge for keyboard lock-up when `kbdcontrol' tries to change typematic rate, or the X server (XFree86 or Accelerated X) starts up.
So far, there have been two independent reports from Dell Latitude XPi notebook/laptop owners. The Latitude seems to be the only system which suffers from this problem. (I don't know the problem is with the entire Latitude line or with only some Latitude models) No problem report has been heard about other systems (I certainly cannot reproduce the problem in my -current and 2.2 systems).
In 3.0-CURRENT, 2.2-RELEASE and 2.2-GAMMA-970310, when programming the keyboard LED/repeat-rate, `set_keyboard()' in `syscons' tells the keyboard controller not to generate keyboard interrupt (IRQ1) and then enable tty interrupts, expecting the keyboard interrupt doesn't occur.
It appears that somehow Latitude's keyboard controller still generates the keyboard interrupt thereafter, and `set_keyboard()' doesn't see the return code from the keyboard because it is consumed by the keyboard interrupt handler.
The patch entirely disables tty interrupts while setting LED and typematic rate in `set_keyboard()', making the routine behave more like the previous versions of `syscons' (versions in 2.1.X and 2.2-ALPHA, -BETA, and some -GAMMAs). The reporter said this patch eliminated the problem.
(I also found another typo/bug, but the reporter and I found that it wasn't the cause of the problem...)
This should go into RELENG_2_2.
|
24203 |
24-Mar-1997 |
bde |
Don't include <sys/ioctl.h> in the kernel. Stage 1: don't include it when it is not used. In most cases, the reasons for including it went away when the special ioctl headers became self-sufficient.
|
24131 |
23-Mar-1997 |
bde |
Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined. Fixed everything that depended on getting fcntl.h stuff from the wrong place. Most things don't depend on file.h stuff at all.
|
23492 |
07-Mar-1997 |
yokota |
Made set_controller_command_byte() less verbose. It used to print a debug message whenever one of lock keys were pressed, if the system was started with the `-v' option.
Removed a couple of lines of dead code too.
|
23456 |
06-Mar-1997 |
joerg |
Move pcvt towards using kbdio (finally!).
Warning: this won't work yet with PCVT_SCANSET=2 along in early console mode (boot -c, or boot -d).
A big thanks to Kazutaka, and a word of apologies for delaying the review for that long time...
Submitted by: yokota@zodiac.mech.utsunomiya-u.ac.jp (Kazutaka YOKOTA)
|
23393 |
05-Mar-1997 |
bde |
Only print clock calibration messages if the system was booted with -v.
Submitted by: partly by gpalmer
|
23386 |
05-Mar-1997 |
gpalmer |
Back out the patch to break up the clock probe lines. Instead, follow Bruce's suggestion of deleting "relative to mc146818A clock ", thus shortening the line ...
|
23375 |
04-Mar-1997 |
gpalmer |
Split the rather long and line-wrapping clock probe messages on boot. (2.2?)
Submitted by: Mathew Dood <winter@jurai.net>
|
23248 |
01-Mar-1997 |
jmg |
make sure that the user supplied signals in struct vt_mode are actually valid signals, else return EINVAL for ioctl VT_SETMODE.
this fixes a problem that anybody with vty access can panic the system.
2.2-Candidate (and 2.1.0 I believe)
Reviewed-by: sos
|
23209 |
28-Feb-1997 |
bde |
Fixed spelling error in a variable name.
|
23194 |
28-Feb-1997 |
yokota |
Removed an obsolete test which prevented mouse movement from quiting screen saver. Added a missing `break' statement in set_normal_mode().
Reviewed by: sos
|
22975 |
22-Feb-1997 |
peter |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
22640 |
13-Feb-1997 |
sos |
Oops, cut/paste could be done on tthe WRONG vty :( pointed out by Kazu.
|
22521 |
10-Feb-1997 |
dyson |
This is the kernel Lite/2 commit. There are some requisite userland changes, so don't expect to be able to run the kernel as-is (very well) without the appropriate Lite/2 userland changes.
The system boots and can mount UFS filesystems.
Untested: ext2fs, msdosfs, NFS Known problems: Incorrect Berkeley ID strings in some files. Mount_std mounts will not work until the getfsent library routine is changed.
Reviewed by: various people Submitted by: Jeffery Hsu <hsu@freebsd.org>
|
22399 |
07-Feb-1997 |
yokota |
Fix for the Compaq Armada laptop.
The PS/2 mouse device responds to a reset command with a sequence of ACK(fa), RESULT(aa) and ID(00). Most PS/2 mice immediately returns ACK, but spend sometime before sending RESULT. The Armada takes time before ACK; extra delay is necessary before the call to read ACK.
The problem was reported in comp.unix.bsd.freebsd.misc and the patch was tested by the reporter. No PR was filed, by the way.
|
22179 |
01-Feb-1997 |
bde |
Fixed the SMC fifo bug fix. sioopen() hung while input was streaming in with <= 100 usec between each character arrival time. This didn't happen until rev.1.75 of clock.c because DELAY(100) used to delay for closer to 80 usec than 100 usec, and the minimum time between character arrivals is 87.8 usec at the maximum supported speed of 115200 bps 8N1.
Clear DCD timestamp flag on close (the input timestamp flag is already cleared).
|
22128 |
30-Jan-1997 |
sos |
Fixed the "switch to next screen" command (normally bound to the key "print scrn". It used to stop at the first non-open vty, now it skips the non-open ones and thereby enable one to cycle around all open vty by pressing "print scrn".
|
22106 |
29-Jan-1997 |
bde |
Estimate an initial overhead of 0 usec instead of 20 usec in DELAY(). I have code to calibrate the overhead fairly accurately, but there is little point in using it since it is most accurate on machines where an estimate of 0 works well. On slow machines, the accuracy of DELAY() has a large variance since it is limited by the resolution of getit() even if the initial delay is calibrated perfectly.
Use fixed point and long longs to speed up scaling in DELAY(). The old method slowed down a lot when the frequency became variable. Assume the default frequency for short delays so that the fixed point calculation can be exact.
Fast scaling is only important for small delays. Scaling is done after looking at the counter and outside the loop, so it doesn't decrease accuracy or resolution provided it completes before the delay is up. The comment in the code is still confused about this.
|
22104 |
29-Jan-1997 |
bde |
Fixes and workarounds for Hayes ESP: - don't uselessly initialize the fifo "DMA" bit at attach time. - initialize the fifo "DMA" bit at open time. Without this, the device interrupts for every character received, reducing input performance to that of an 8250. - don't uselessly initialize the fifo trigger level to 8 (scaled to 256) at attach time. - don't scale the fifo trigger level to 512 bytes. The driver's pseudo- dma buffer has size 256, so it can't handle bursts of size 512 or 256. It should be able to handle the second lowest ftl (2 scaled to 64). - don't reset the fifos in siostop(). Reset triggers a hardware bug involving wedging of the output interrupt bit This workaround unfortunately requires ESP support to be configured.
|
21964 |
23-Jan-1997 |
sos |
Add save/restore cursor as pr SCO screen(HW) manpage. Fix ESC[2J to not move cursor home Clear mouse cutmarking on more cases. Minor changes by me.
Submitted by: ache
|
21884 |
20-Jan-1997 |
sos |
Fix the bug that caused CTRL & ALT keys to be hanging sometimes after an X seesion. Really stupid error of me, and I've been looking at this code SO many times. Thanks to Kazutaka YOKOTA for seeing this..
Submitted by: Kazutaka YOKOTA
|
21875 |
19-Jan-1997 |
sos |
Oops, the position of the savefont code was wrong, cur_console wasn't set yet.
|
21849 |
18-Jan-1997 |
sos |
Oops! I commented out the waiting for retrace loops, because the one in draw_mouse causes spontanious hangs on my p5-100 when I move the mouse excessively. Forgot that on the last commit, so using the mouse or destructive cursor would produce large amounts of flicker..
|
21805 |
17-Jan-1997 |
sos |
Bruce pointed out a bogon:
cur_console is NULL when copy_font() is first called from scinit(). This is apparently harmless when scinit() is called early from sccninit() - page 0 is apparently mapped r/w then, and 0->status contains suitable garbage. However, when there is a serial console, scinit() is first called from scattach() when the page tables are completely initialized, so the NULL pointer causes a panic.
Submitted by: bruce
|
21783 |
16-Jan-1997 |
bde |
Guard against the i8254 timer being uninitialzed if DELAY() is called early for console i/o. The timer is usually in BIOS mode if it isn't explicitly initialized. Then it counts twice as fast and has a max count of 65535 instead of 11932. The larger count tended to cause infinite loops for delays of > 20 us. Such delays are rare. For syscons and kbdio, DELAY() is only called early enough to matter for ddb input after booting with -d, and the delay is too small to matter (and too small to be correct) except in the PC98 case. For pcvt, DELAY() is not used for small delays (pcvt uses its own broken routine instead of the standard broken one), but some versions call DELAY() with a large arg when they unnecessarily initialize the keyboard for doing console output. The problem is more serious for pcvt because there is always some early console output.
Guard against the i8254 timer being partially or incorrectly initialized. This would have prevented the endless loop.
Should be in 2.2.
|
21774 |
16-Jan-1997 |
kato |
- Modified for PC-98. - Included IBM-PC specific code in #ifndef PC98.
|
21731 |
15-Jan-1997 |
sos |
Upgrade the kbdio rutines to provide queued kbd & mouse events. Minor other updates to syscons by me.
Submitted by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
21673 |
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
20875 |
23-Dec-1996 |
bde |
Use breakpoint() instead of Debugger() in siointr1(). Debugger() doesn't work in fast interrupt handlers because it calls db_printf() which uses %es for string stuff and %es isn't initialized.
|
20664 |
19-Dec-1996 |
alex |
Hawaii-Five-Typo
|
20647 |
18-Dec-1996 |
bde |
Disabled half-baked disk statistics support. It didn't actually generate statistics, so it just wasted scarce disk table slots and screen space.
|
20197 |
07-Dec-1996 |
sos |
Fix the broken support for monochrome VGA's. It was MY fault after all, damn..
|
20127 |
04-Dec-1996 |
asami |
Synchronize with the RELENG_2_2 branch.
Definite 2.2 candidate.
Submitted by: The FreeBSD(98) Development Team
|
20073 |
01-Dec-1996 |
sos |
Alot of fixes from kazu:
1. All the suggestions earlier made by Bruce: renaming some symbols, stricter error checking, removing redundant code, etc.
2. The `psm' driver preserves the default counter resolution and report rate, whatever they are after reset. (Based on reports and suggestion from Nate and Rob Bolin).
3. The `psm' driver now does not check the so-called sync. bit in the first byte of the data packet by default, so that the tapping feature of ALPUS GlidePoint works (based on reports from Louis Mamakos). I tested the code with ALPUS Desktop GlidePoint (M/N GP101) and found no problem; tapping worked. It appears ALPUS produces several models of GlidePoint. I hope the other models are OK too.
The check code can still be activated by defining the PSM_CHECKSYNC option in the config file. (The bit checking slightly reduces, if not completely eliminates, weird mouse behavior cased by unsynchronized mouse data packets. It also helps us to detect if the mouse interrupt can ever be lost. But, well, if there are devices which cannot be supported this way...)
4. The `psm' driver does not include the protocol emulation code by default. The code can still be compiled in if the PSM_EMULATION option is specified in the config file. Louis Mamakos suggests the emulation code is putting too much in the kernel, and `moused' works well. I will think about this later and decide if the entire emulation code should be removed.
5. And, of course, the fix in `scprobe()' from Bruce to cure the UserConfig problem. My code in `kbdio.c' is slightly different from his patch, but has the same effect. There still is a possibility that `scprobe()' gets confused, if, for whatever reasons, the user holds down a key for very long time during the boot process. But we cannot cope with everything, can we?
Submitted by: Kazutaka YOKOTA (yokota@zodiac.mech.utsunomiya-u.ac.jp)
|
20049 |
30-Nov-1996 |
bde |
Fixed input of BREAKs when IGNPAR is set and IGNBRK is not set. BREAKs are always together with Framing Errors and they were incorrectly treated as FE's and discarded.
Reorganized the BREAK/FE/PE tests.
Found by: NIST-PCTS
|
20048 |
30-Nov-1996 |
bde |
Reset h/w fifos (if any) in siostop(). Now ttyflush() works fairly well with sio devices (not perfectly, since there is no way to flush the tx holding register on 8250-16450's. I'm not sure if resetting the fifos flushes the tx shift register).
Reminded by: NIST-PCTS
|
20047 |
30-Nov-1996 |
bde |
Fixed sloppy clearing of TS_BUSY. Don't clear it until the transmitter is completely empty. There is no interrupt for output completion, so poll for it every 10 ms after output is nearly complete. Now ttywait() works right.
Reminded by: NIST-PCTS
|
20046 |
30-Nov-1996 |
bde |
Throw away input if CREAD is not set. POSIX requires no characters to be received in this case even if the hardware doesn't have a CREAD bit.
Found by: NIST-PCTS
|
20045 |
30-Nov-1996 |
bde |
Cleaned up CONSPEED changes. `comdefaultrate' gives the default speed for the "com" console, not for general purpose "com" ports, so there was no need to split it into comdefaultrate and condefaultrate.
|
19869 |
19-Nov-1996 |
nate |
Fix UserConfig w/syscons.
The 'getchar' function in syscons (sccngetc) is used by UserConfig to get keyboard input from the user. When it was modified to use the shared keyboard port routines it used the port passed in during the probe routine. Since the probe routine was not yet called, the port was set to 0, which is obviously not going to work.
Pre-initialize sc_port to IO_KBD which is really a kludge, but it's how the previous driver did it's job.
Found by: remote GDB
|
19771 |
15-Nov-1996 |
sos |
Only poll the keyboard if the data left in the buffer is from the kbd, not if its from the psm device.
|
19753 |
14-Nov-1996 |
sos |
Finally a start at sharing the kdb controller routines between syscons and psm, curtesy Kazutaka Yokota with minor changes by me. This contains an update of the psm driver as well. This also fixes the breakage that I introduced to the psm driver by making syscons poll for keyboard events in the atempt to fix the hanging keyboard problem.
It works perfectly for me, and I'd like to hear from all that have had keyboard/ps/2 mouse problems if this is the cure...
Submitted by: Kazutaka YOKOTA (yokota@zodiac.mech.utsunomiya-u.ac.jp)
|
19718 |
13-Nov-1996 |
bde |
Don't fiddle with RTS if RTS flow control is off. This gives applications almost complete control over RTS (control of its initial value is still missing).
This fixes PR 1644 for sio.
The author of PR 1644 wants it in 2.1.6 and 2.2. This may be safe since the complications are only in rarely used cases that I hope I've covered.
|
19658 |
11-Nov-1996 |
sos |
1. Avoid a race in scclose(). tty.c has kludges so that the race is actually harmless.
2. Fixed code to match comment in scintr().
3. Don't allow even root to take control of the machine when securelevel > 0. I've secured the accesses to PSL_IOPL in all drivers and asked pst to review it, but he seems to be busy. Write access to /dev/kmem and other critival devices currently leaks across raisings of securelevel via open fd's, so there may as well be a similar leak for PSL_IOPL.
4. (Most important.) Don't corrupt memory beyond the screen buffers if the cursor happens to be off the 80x25 screen when syscons starts.
5. Fix console cursor update (not perfect yet). Submitted by: bruce ~
|
19655 |
11-Nov-1996 |
nate |
Removed 'XT_KEYBOARD' option from syscons. Document new-style way of getting the same behavior using the flags, which can be done inside of UserConfig. (Also document other syscons flags which were previously undocumented).
Requested by: bde
|
19613 |
10-Nov-1996 |
nate |
Allow us to enable the 'XT_KEYBOARD' code using a configuration flag. This allows the user to add modify syscons's configuration flags using UserConfig that will allow older/quirky hardware (most notably older IBM ThinkPad laptops) to work with the standard boot kernel.
Inspired by: The Nomads
|
19405 |
04-Nov-1996 |
sos |
Fix the hanging keyboard problem under Xaccel. Apprently we are loosing an interrupt somewhere. The solution here is to check for keyboard input each time the screen update timer ticks. Not pretty, but works.
|
19341 |
02-Nov-1996 |
joerg |
Fix the broken EOF handling in the floppy driver. The most obvious appearance of this bug was the malfunctioning -M option in GNU tar (it worked only by explicitly specifying -L).
Reviewed by: bde, and partially corrected accoring to his comments
Candidate for 2.2, IMHO even for 2.1.6.
|
19325 |
02-Nov-1996 |
pst |
add in CONSPEED option which controls console serial port speed
|
19269 |
30-Oct-1996 |
asami |
More merge and update.
(1) deleted #if 0
pc98/pc98/mse.c
(2) hold per-unit I/O ports in ed_softc
pc98/pc98/if_ed.c pc98/pc98/if_ed98.h
(3) merge more files by segregating changes into headers.
new file (moved from pc98/pc98):
i386/isa/aic_98.h
deleted:
well, it's already in the commit message so I won't repeat the long list here ;)
Submitted by: The FreeBSD(98) Development Team
|
19197 |
26-Oct-1996 |
sos |
Use the calibrated/adjustable i8254 frequency `timer_freq' instead of TIMER_FREQ.
Fixed missing splx() in scrn_timer(). The bug was harmless because of the undocumented behaviour that the ipl is automatically restored for timeout functions (see softclock()). Perhaps we should depend on this behaviour.
Fixed the ddb fix in rev.1.176. The in_debugger flag was no use because it only works when the debugger is entered via the keyboard hotkey. The debugger may be entered for breakpoints and traps, and the console putc routine has no way of knowing when it was, so the console putc routine must (almost?) always remove the cursor image.
Not fixed: console switching in ddb doesn't work (ISTR it working), and console 0 shouldn't be switched to for the debugger hotkey unless console 0 is /dev/console.
Fixed side effects from calling add_keyboard_randomness() in the console getc routine by not calling it. add_keyboard_randomness() currently always reenables interrupts on 386's and 486's. This is very bad if the console getc routine is called from the debugger and the debugger was entered with interrupts disabled.
Fixed preservation of initial screen and now-bogus comment about it. It was broken by setting the initial scr_buf to `buffer' instead of Crtat. `buffer' was full of nulls and the first scroll cleared everything above the things written through syscons.
Submitted by: bruce (bde@freebsd.org)
|
19186 |
26-Oct-1996 |
bde |
Removed initialization of a variable that went away. Oops.
|
19173 |
25-Oct-1996 |
bde |
Print the clock calibration messages all on one (long) line again so that they are easy to grep for.
Removed now-unused i586 counter variables.
Fixed some style bugs.
|
19123 |
23-Oct-1996 |
pst |
Remove SC_KBD_PROBE_WORKS option and replace it with a simple run-time flag bit (0x0008) in the sc driver configuration line. This way it's easy to boink a generic kernel.
Also, document and place in an opt_ file the #define's for overriding which serial port is the system console. Approved by: sos
|
19022 |
18-Oct-1996 |
sos |
Changed mouse functionality a bit, now the pointer disappears if there is keyboard input. The mousepointer is shown again immediately if moved.
Also a function pointer used to install a userwritten extra ioctl handler (sc_user_ioctl). This way its is possible to install user defined videomodes etc etc. No further changes should be in the kernel.
|
18948 |
15-Oct-1996 |
sos |
Corrected the setting of winsize on open(). Problem pointed out by David Nugent - davidn@blaze.net.au.
|
18842 |
09-Oct-1996 |
bde |
Put I*86_CPU defines in opt_cpu.h.
|
18831 |
09-Oct-1996 |
bde |
Don't claim the console when the driver is disabled. The getc/putc part of the console driver usually works when the driver is disabled, but the normal read/write part doesn't (it caused a panic).
|
18647 |
03-Oct-1996 |
jkh |
scresume erroneously used before declared. Move the function rather than add another APM ifdef just for the forward decl. [Boy, sure a lot of warnings in here!]
|
18646 |
02-Oct-1996 |
sos |
Fixed the userconfig problem (and one with ddb as well). The rudimentary support for a splash page is there, and works, it just needs a splash page...
|
18629 |
01-Oct-1996 |
sos |
Fixed the "missing updates" reported by ache. Moved a little closer to having a splash page capability.
|
18617 |
01-Oct-1996 |
jkh |
#ifdef another instance of toggle_splash_screen() which Soren missed.
|
18588 |
30-Sep-1996 |
sos |
Dont make splash screen the default :)
|
18587 |
30-Sep-1996 |
sos |
Fix a couble of nasties regarding mouse pointer and different resolutions. Allow middle mouse button to be used for pasting. Also added the beginnings of support for a splash page.
|
18575 |
30-Sep-1996 |
bde |
Work around UMC8669F and Startech UART bugs by not writing to the divisor latch registers if the registers wouldn't change.
Use the default console cfcr setting while setting the divisor latch registers for console i/o. Input may be messed up by transiently changing the cfcr.
Use a usual cfcr setting while setting the divisor latch registers in the probe. This shouldn't matter, but this is not the place to test the UART's handling of 5 bit words.
Removed a stale devfs comment.
|
18297 |
14-Sep-1996 |
bde |
Attached simple external ddb commands `show rtc', `show pgrpdump' and `show cbstat'. The pgrpdump code was previously controlled by `#ifdef DEBUG'.
|
18288 |
14-Sep-1996 |
bde |
Changed cncheckc() interface so that it is 8-bit clean - return -1 instead of 0 if there is no input.
syscons.c: Added missing spl locking in sccncheckc(). Return the same value as sccngetc() would. It is wrong for sccngetc() to return non-ASCII, but stripping the non-ASCII bits doesn't help.
|
18265 |
12-Sep-1996 |
asami |
Another round of merge/update.
(1) Add PC98 support to apm_bios.h and ns16550.h, remove pc98/pc98/ic (2) Move PC98 specific code out of cpufunc.h (to pc98.h) (3) Let the boot subtrees look more alike
Submitted by: The FreeBSD(98) Development Team <freebsd98-hackers@jp.freebsd.org>
|
18224 |
10-Sep-1996 |
peter |
Hack workaround XFree86 switching failure when used with /dev/sysmouse and xdm, possibly in general.
What was happening was that the server was doing a tcsetattr(.. TCSADRAIN) on the mouse fd after a write. Since /dev/sysmouse had a null t_oproc, the drain failed with EIO. Somehow this spammed XFree86 (!@&^#%*& binary release!!), and the driver was left in a bogus state (ie: switch_in_progress permanently TRUE).
The simplest way out was to implement a dummy scmousestart() routine to accept any characters from the tty system and toss them into the void.
It would probably be more correct to intercept scwrite()'s to the mouse device, but that's executed for every single write to the screen. Supplying a start routine to eat the characters is only executed for the mouse port during startup/shutdown, so it should be faster.
|
18207 |
10-Sep-1996 |
bde |
Updated #includes to 4.4Lite style.
|
18191 |
09-Sep-1996 |
sos |
The poor nsccons variable was gone agian this time hidden by an ifdef , wonder who broke it this time :)
Submitted by: ache
|
18174 |
08-Sep-1996 |
sos |
Make syscons replicate a mousesystems mouse on minor 128..
This enables other consumers of the mouse, to get it info via moused/syscons. In order to use it run moused (from sysconfig), and then tell your Xserver that it should use /dev/sysmouse (mknod sysmouse c 12 128) and it a mousesystems mouse. Everybody will be happy then :) Remember that moused still needs to know what kind of mouse you have..
Comments welcome, as is test results...
|
18125 |
07-Sep-1996 |
bde |
Fixed another easy case of const poisoning in the kernel. Cosmetic.
(A pointer to a const was misused to avoid loading loading the same value twice, but gcc does exactly the same optimization automatically. It can see that the value hasn't changed.)
|
18088 |
06-Sep-1996 |
pst |
Add option SC_KBD_PROBE_WORKS to syscons driver.
If you define this, it means your keyboard is actually probable using the brain-dammaged probe routine in syscons, and if the keyboard is NOT found, then you don't want syscons to activate itself further.
This makes life sane for those of us who use serial consoles most of the time and want "the right thing" to happen when we plug a keyboard in.
|
18084 |
06-Sep-1996 |
phk |
Remove devconf, it never grew up to be of any use.
|
18034 |
04-Sep-1996 |
sos |
Fixed a panic when switching to 40x25 mode, and cursor was beyond the new buffer.
|
17993 |
01-Sep-1996 |
sos |
Fixed a couple of bugs in the mousepointer code. Changed update strategy slightly. Make set_mode & copy_font externally visible.
|
17870 |
28-Aug-1996 |
bde |
Fixed restoral of nsscons variable. The tty for /dev/console was lost. A warning was introduced.
|
17628 |
16-Aug-1996 |
peter |
restore nsccons variable from rev 1.115 that was deleted in rev 1.136 during phk's staticize/cleanup commits. pstat needs it, the MAXCONS option is not visible anywhere else, and pstat uses it to find the bounds of the sccons[MAXCONS] array, which varies.
|
17395 |
02-Aug-1996 |
bde |
Eliminated i586_ctr_rate. Use i586_ctr_freq instead.
|
17353 |
30-Jul-1996 |
bde |
Fixed the machdep.i8254_freq and machdep.i586_freq sysctls. Writes were handled bogusly.
Centralized the setting of all the frequency variables. Set these variables atomically. Some new ones aren't used yet.
|
17340 |
30-Jul-1996 |
ache |
Fix GIO_ATTR ioctl return to match SYSV
|
17264 |
23-Jul-1996 |
phk |
Make a "DWIM" function for adding [bc]devsw entries for bdev drivers.
Saves about 280 butes of source per driver, 56 bytes in object size and another 56 bytes moves from data to bss.
No functional change intended nor expected.
GENERIC should be about one k smaller now :-)
|
17236 |
21-Jul-1996 |
joerg |
Post-commit review by Bruce. Mostly stylistic changes.
Submitted by: bde
|
17231 |
20-Jul-1996 |
joerg |
Major cleanup of the timerX_{acquire,release} stuff. In particular, make it more intelligible, improve the partially bogus locking, and allow for a ``quick re-acquiration'' from a pending release of timer 0 that happened ``recently'', so it was not processed yet by clkintr(). This latter modification now finally allows to play XBoing over pcaudio without losing sounds or getting complaints. ;-) (XBoing opens/writes/closes the sound device all over the day.)
Correct locking for sysbeep().
Extensively (:-) reviewed by: bde
|
17204 |
17-Jul-1996 |
julian |
some internal modems need LOTS of time to generate an interrupt on demand.. increase DELAY from 1000 uS to 10000uS
|
17194 |
17-Jul-1996 |
bde |
Fixed adjustment of `time' when timer0 is released. 27465 was 27645 in a comment and in code that was only used when pcaudio was closed. The maximum error was 66 usec.
|
17122 |
12-Jul-1996 |
bde |
Staticized a few variables.
Fixed warnings about unused variables.
|
16879 |
01-Jul-1996 |
bde |
Added or restored #include of <machine/md_var.h>. Some declarations moved from <machine/cpufunc.h> to better places.
|
16874 |
01-Jul-1996 |
bde |
Use the standard timer (interrupt) frequency while calibrating the clocks. Testing with the high frequency of 20000 Hz (to find problems) only found the problem that this frequency is too high for slow i386's.
Disable interrupts while setting the timer frequency. This was unnecessary before rev.1.57 and forgotten in rev.1.57. The critical (i8254) interrupts are disabled in another way at boot time but not in the sysctl to change the frequency.
|
16806 |
27-Jun-1996 |
joerg |
Bump various timeouts in scprobe(). This finally fixes the broken keyboard reset one of my earlier commits has been causing.
|
16769 |
26-Jun-1996 |
sos |
Fixed bug in pasting 8bit char (ache). Added linefeeds in cuts that extend beyond one line. Prepared for the mousefunctions to be used in nontext modes.
|
16733 |
25-Jun-1996 |
bde |
Added #include of <machine/md_var.h>. This will be needed when some declarations are moved from <machine/cpufunc.h> to better places.
|
16693 |
25-Jun-1996 |
sos |
Change the way moused talk to syscons, now its only delivering mouseevents via an ioctl (MOUSE_ACTION). Fixed a couple of bugs (destructive cursor, uncut, jitter). Now applications can use the mouse via the MOUSE_MODE ioctl, its possible to have a signal sent on mouseevents, makeing an event loop in the application take over mouseevents.
|
16633 |
23-Jun-1996 |
bde |
Moved declarations of static functions to the correct file. This fixes hundreds of warnings from -Wunused in lkm/syscons/*.
|
16567 |
21-Jun-1996 |
sos |
Oops, fix a bug that caused updates to the screen to happen, without anything actually changed, in this case the mousepointer logic.
|
16564 |
21-Jun-1996 |
sos |
Some news for syscons (long overdue):
Real support for a Textmode mousecursor, works by reprogramming the charset. Together with this support for cut&paste in text mode. To use it a userland daemon is needed (moused), which provides the interface to the various mice protokols. Bug fixes here and there, all known PR's closed by this update.
|
16441 |
17-Jun-1996 |
wpaul |
Stomp another compiler warning: sc_devfs_token[] should only be declared if DEVFS is #defined.
|
16430 |
17-Jun-1996 |
bde |
Added support for TIOCDCDTIMESTAMP (enable/get timestamp of last DCD rise). Original version by John Hay.
Simplified timestamp code by reading the time exactly when necessary. This may slow down the interrupt handler with extra calls to microtime(), but only in bad configurations - the input fifo should normally be disabled if timestamps on input are being used, since otherwise the timestamp won't be precisely associated with any particular input event. The interrupt handler remains slowed down by one test and branch for each input (and now DCD change) event - avoiding this is not practical yet.
The simplifications also fixed: - timestamps for input sometimes being clobbered by output and modem status interrupts. - valid timestamps not being available unless the port is configured with vector siointrts. siointrts no longer exists. - compiler warnings about siointr* in some configurations.
Simplified timestamp and probe code by depending on recent changes in microtime() and DELAY() to preserve the interrupt enable flag.
|
16428 |
17-Jun-1996 |
bde |
In getit(), use read_eflags()/write_eflags() to preserve the interrupt enable flag instead of enable_intr() to restore it to its usual state. getit() is only called from DELAY() so there is no point in optimising its speed (this wasn't so clear when it was extern), and using enable_intr() made it inconvenient to call DELAY() from probes that need to run with interrupts disabled.
|
16300 |
11-Jun-1996 |
pst |
Move warning messages under bootverbose
|
16299 |
11-Jun-1996 |
pst |
Put clock calibration #defines in opt_clock.h to ease reconfiguration
|
15925 |
27-May-1996 |
peter |
Fix the warnings about "cant inline call to xxx" by reordering two functions. It seems gcc wants to have seen the definitions of the function before it will insert it inline in a caller.
|
15746 |
12-May-1996 |
joerg |
Fix the "well-known retries bug" (a logic-o).
|
15739 |
11-May-1996 |
joerg |
Give up waiting for a successful keyboard reset after some unreasonable time. I've got a PCI mainboard that simply doesn't grok it, so continuing with a warning (and a keyboard that's working nevertheless :) seems to be better than spin-looping forever.
|
15580 |
03-May-1996 |
phk |
Typo.
|
15574 |
03-May-1996 |
phk |
Move from the old buf.b_actf to the new TAILQ(buf.b_act).
|
15562 |
02-May-1996 |
ache |
Fix ^[[1K (clear from beginning of line to cursor) and ^[[2K (clear whole line), they not work _initially_
|
15534 |
02-May-1996 |
phk |
KGDB is dead. It may come back one day if somebody does it.
|
15508 |
01-May-1996 |
bde |
Added calibration the i8254 and the i586 clocks agains the RTC at boot time. The results are currently ignored unless certain temporary options are used.
Added sysctls to support reading and writing the clock frequency variables (not the frequencies themselves). Writing is supposed to atomically adjust all related variables.
machdep.c: Fixed spelling of a function name in a comment so that I can log this message which should have been with the previous commit.
Initialize `cpu_class' earlier so that it can be used in startrtclock() instead of in calibrate_cyclecounter() (which no longer exists).
Removed range checking of `cpu'. It is always initialized to CPU_XXX so it is less likely to be out of bounds than most variables.
clock.h: Removed I586_CYCLECTR(). Use rdtsc() instead.
clock.c: TIMER_FREQ is now a variable timer_freq that defaults to the old value of TIMER_FREQ. #define'ing TIMER_FREQ should still work and may be the best way of setting the frequency.
Calibration involves counting cycles while watching the RTC for one second. This gives values correct to within (a few ppm) + (the innaccuracy of the RTC) on my systems.
|
15502 |
01-May-1996 |
bde |
Fixed a race that caused panics in kernel printfs when the screen timeout routine changed the screen pointers while output was in progress.
|
15390 |
26-Apr-1996 |
sos |
Removed options MAXCONS & HARDFONT, they are no longer in use (and havn't been for long, sigh)
|
15363 |
23-Apr-1996 |
nate |
Format the already applied PCCARD additions to use KNF form. No functional changes.
|
15345 |
22-Apr-1996 |
nate |
- add apm to the GENERIC kernel (disabled by default), and add some comments regarding apm to LINT - Disabled the statistics clock on machines which have an APM BIOS and have the options "APM_BROKEN_STATCLOCK" enabled (which is default in GENERIC now) - move around some of the code in clock.c dealing with the rtc to make it more obvios the effects of disabling the statistics clock
Reviewed by: bde
|
15246 |
13-Apr-1996 |
bde |
Another try: fixed bogus change of the fifo settings for the non-speed of 0. rev.1.30 incorrectly changed the behaviour from always disabling the fifo to always enabling it.
|
15204 |
11-Apr-1996 |
bde |
Moved AUTO_EOI_[12] and most sio and pcvt options out of the makefile.
|
15178 |
10-Apr-1996 |
scrappy |
removed RS_IBUFSIZE #ifndef - have been informed it was a bad idea
|
15173 |
10-Apr-1996 |
scrappy |
Placed an #ifndef around RS_IBUFSIZE so that it can be changed in the config file ... PR#528 is reportly fixed by adding 'options RS_IBUFSIZE=1024' to the config file
|
15148 |
08-Apr-1996 |
smpatel |
Update drivers to use isa_dma_acquire() and isa_dma_release()
Reviewed by: bde
|
15116 |
07-Apr-1996 |
bde |
Removed now-unused #includes of <machine/cpu.h>. They were for bootverbose being declared in the wrong place.
|
15108 |
07-Apr-1996 |
bde |
Fixed devfs device names and numbers.
Fixed handling of unknown CMOS types - don't attach unrecognized devices.
|
15054 |
05-Apr-1996 |
ache |
Fix adjkerntz expression priority
|
15045 |
05-Apr-1996 |
ache |
Add wall_cmos_clock sysctl variable, needed to manage adjkerntz even for UTC cmos clocks (needed for Local Timezone FSes)
|
14992 |
02-Apr-1996 |
scrappy |
changed from using dev_link() to devfs_link()
|
14955 |
31-Mar-1996 |
joerg |
Fetch the (dummy) READY CHANGED condition interrupt stati that happen after an FDC reset.
Submitted by: bde
|
14943 |
31-Mar-1996 |
bde |
Moved rtcin() to clock.c.
Always delay using one inb(0x84) after each i/o in rtcin() - don't do this conditional on the bogus option DUMMY_NOPS not being defined. If you want an optionally slightly faster rtcin() again, then inline it and use a better named option or sysctl variable. It only needs to be fast in rtcintr().
|
14906 |
29-Mar-1996 |
bde |
Fixed group of some more disk devices.
Fixed devfs function names.
|
14873 |
28-Mar-1996 |
scrappy |
Switched from using devfs_add_sw() to using devfs_add_swf()
Reviewed by: julian@freebsd.org
|
14852 |
27-Mar-1996 |
bde |
Fixed ownerships of callout devices.
|
14848 |
27-Mar-1996 |
bde |
Moved the initialization of the devfs devices to after the initialization of the devswitch so that it actually works.
|
14773 |
23-Mar-1996 |
nate |
Whoops, back out the last commit, which was accidentally committed at the same time as the if_zp cleanup patch.
The commit that occurred was an incomplete patch for APM on my laptop and needs more work.
|
14772 |
23-Mar-1996 |
nate |
Now that ac->ac_ipaddr and arpwhohas() no longer exist, remove the ifdef'd out code that used it.
|
14634 |
16-Mar-1996 |
jmz |
Fix the isa_device table (lkm): id_irq and id_maddr must be 0. Pointed out by: bde
|
14633 |
15-Mar-1996 |
jmz |
Add code to make it a loadable kernel module
|
14328 |
02-Mar-1996 |
peter |
Add more options into the conf/options and i386/conf/options.i386 files and the #include hooks so that 'make depend' is more useful. This covers most of the options I regularly use (but not all) and some other easy ones.
|
14255 |
25-Feb-1996 |
bde |
Added some delays to the probe. This might fix some incompatible UARTs (the ones that take more than a few hundred nsec and less than 1 msec to switch their IRQ output).
|
14254 |
25-Feb-1996 |
bde |
Don't turn off the motor on active drives. The motor timeout may occur while a command is in progress if the system is overloaded or was stopped at a debugger breakpoint.
|
14086 |
13-Feb-1996 |
phk |
use devfs_add_devswf and avoid local variable.
|
13967 |
08-Feb-1996 |
pst |
Close kern/627 - panic if syscons not attached
|
13914 |
05-Feb-1996 |
ache |
Deliver all bells to current console, use different pitch for non-originating bells.
|
13765 |
30-Jan-1996 |
mpp |
Fix a bunch of spelling errors in the comment fields of a bunch of system include files.
|
13758 |
30-Jan-1996 |
wollman |
No longer use the cyclecounter to attempt to correct for late or missed clock interrupts.
Keep a 1-in-16 smoothed average of the length of each tick. If the CPU speed is correctly diagnosed, this should give experienced users enough information to figure out a more suitable value for `tick'.
|
13647 |
27-Jan-1996 |
bde |
First attempt at creating devfs entries for sliced devices. Doesn't quite work yet, so the heart of it is disabled.
Added bdev and cdev args to dsopen().
drivers: Fixed device names, links, minor numbers and modes.
wd.c: Started actually supporting devfs.
diskslice.h: Added devfs tokens to structs (currently 576 of them per disk! :-().
subr_diskslice.c: Create devfs entries in dsopen() and (unsuccessfully) attempt to make them go away at the right times. DEVFS is #undefed at the start so that this shouldn't cause problems.
|
13646 |
27-Jan-1996 |
bde |
Allocate DMA bounce buffers only when requested by drivers. Only the fd and wt drivers need bounce buffers, so this normally saves 32K-1K of kernel memory.
Keep track of which DMA channels are busy. isa_dmadone() must now be called when DMA has finished or been aborted.
Panic for unallocated and too-small (required) bounce buffers.
fd.c: There will be new warnings about isa_dmadone() not being called after DMA has been aborted.
sound/dmabuf.c: isa_dmadone() needs more parameters than are available, so temporarily use a new interface isa_dmadone_nobounce() to avoid having to worry about panics for fake parameters. Untested.
|
13632 |
25-Jan-1996 |
ache |
Change RUKEYMAP sligtly
|
13630 |
25-Jan-1996 |
phk |
Avoid local sprintfs and other printf'isms.
|
13453 |
16-Jan-1996 |
ache |
Since new bcd* macros not argument range overflow resistant, fix argument overflow for years >= 2000
|
13445 |
15-Jan-1996 |
phk |
My wife is busy making me a new conical hat, so you don't need to send any to me this time. Commited an old copy of this files where the tables were swapped. Duh!.
|
13444 |
15-Jan-1996 |
phk |
Soren called an said that I screwed up badly, so I backup until I find out how... Sorry.
|
13438 |
15-Jan-1996 |
phk |
Make bin2bcd and bcd2bin global macroes instead of having local implementations all over the place.
|
13402 |
12-Jan-1996 |
bde |
Fixed handling of Feb 29 in resettodr().
|
13350 |
08-Jan-1996 |
ache |
Replace ugly year/month calculations in resettodr to more clean variants, idea taken from NetBSD clock.c. At least year calculation was wrong, pointed by Bruce. Use different strategy to store year for BIOS without RTC_CENTURY
|
13228 |
04-Jan-1996 |
wollman |
Convert DDB to new-style option.
|
13114 |
30-Dec-1995 |
bde |
Restored likely_com_ports[] from rev.1.122 so that Hayes ESP support at least compiles.
|
13105 |
29-Dec-1995 |
bde |
Oops, this should have been committed with the other Hayes ESP changes.
|
13104 |
29-Dec-1995 |
bde |
Added support for the Hayes ESP serial card.
Submitted by: Sean Eric Fagan (sef@kithrup.com) Based on code by John Vinopal (banshee@resort.com) Cosmetic (I hope) changes by me (bde).
|
13000 |
24-Dec-1995 |
dg |
Add Pentium Pro CPU detection and special handling. For now, all the optimizations we have for 586s also apply to 686s...this will be fine- tuned in the future as appropriate.
|
12961 |
22-Dec-1995 |
bde |
Fixed bugs introduced in rev. 1.127 (some broken 16650 support was unintentionally committed): - the fifo was completely disabled for low speeds. Apart from being unnecessarily inefficient, this invalidated com->tx_fifo_size. - `ftl' became a bogus name. - the 16650 probe breaks the COM_NOFIFO() case and has other bugs (disabled, not fixed).
Fixed bogus change of the fifo settings for the non-speed of 0. This bug made the above fifo bug occur even at non-low speeds.
Fixed the modes of the cua devices. It isn't possible to set the uid and gid correctly since the kernel can't know who uucp.dialer is.
Register the devswitch at device attach time. SYSINIT() is not the right way to initialize devswitches (if anything :->). Eventually, the devswitch should be deregistered at device detach and/or unload time and reregistered at device attach time ... Then some com->gone tests could be removed.
Cleaned up some other recent changes.
|
12941 |
20-Dec-1995 |
wollman |
Increase Pentium cyclecounter calibration time to 131072 us. This experimentally seems to give better results on my machine.
|
12854 |
15-Dec-1995 |
bde |
Completed function declarations and/or added prototypes and/or added #includes to get prototypes.
|
12844 |
14-Dec-1995 |
bde |
Fixed staticization of DDB functions.
|
12840 |
14-Dec-1995 |
bde |
Removed my devsw access functions [un]register_cdev() and getmajorbyname() which were a better (sigh) temporary interface to the going-away devswitches.
Note that SYSINIT()s to initialize the devswitches would be fatal in syscons.c and pcvt_drv.c (and are bogus elsewhere) because they get called independently of whether the device is attached; thus devices that share a major clobber each other's devswitch entries until the last one wins.
conf.c: Removed stale #includes and comments.
|
12743 |
10-Dec-1995 |
bde |
Replaced nxreset by noreset (if the reset function gets called, then the device must be configured. It's hard to tell whether a reset function should be noreset or nullreset since reset functions are never called. Most drivers use nullreset but noreset has the advantage of complaining if somehow gets called).
|
12736 |
10-Dec-1995 |
bde |
Replaced nxdump by nodump (if the dump function gets called, then the device must be configured, so ENXIO is a bogus errno).
Replaced zerosize by nopsize. zerosize was a temporary alias.
|
12731 |
10-Dec-1995 |
bde |
Removed new alias d_size_t for d_psize_t.
Removed old aliases d_rdwr_t and d_ttycv_t for d_read_t/d_write_t and d_devtotty_t.
Sorted declarations of switch functions into switch order.
Removed duplicated comments and declarations of nonexistent switch functions.
|
12724 |
10-Dec-1995 |
phk |
Staticize and cleanup.
|
12691 |
09-Dec-1995 |
julian |
clean a few DEVFS things.. fix a bug where you couldn't place devices in the root directory of devfs
remove deprecated routines
On my machine devfs now shows: julian@erf.tfs.com: julian@erf.tfs.com: ls -RF bpf0 mem ptypb spkr ttyp8 bpf1 null ptypc stderr ttyp9 bpf2 pcaudio ptypd stdin ttypa bpf3 pcaudioctl ptype stdout ttypb console pt ptypf tty ttypc cuaa0 ptyp0 random ttyd0 ttypd cuaia0 ptyp1 rsd0 ttyid0 ttype cuala0 ptyp2 rsd1 ttyld0 ttypf fd/ ptyp3 rvn ttyp0 tun0 fd0.1440 ptyp4 rworm ttyp1 urandom fd1.1200 ptyp5 scsi/ ttyp2 vn io ptyp6 sd0 ttyp3 zero kmem ptyp7 sd1 ttyp4 lkm ptyp8 snp0 ttyp5 log ptyp9 snp1 ttyp6 lpt0 ptypa snp2 ttyp7
./fd: 0 15 21 28 34 40 47 53 6 9 1 16 22 29 35 41 48 54 60 10 17 23 3 36 42 49 55 61 11 18 24 30 37 43 5 56 62 12 19 25 31 38 44 50 57 63 13 2 26 32 39 45 51 58 7 14 20 27 33 4 46 52 59 8
./scsi: sctarg ssc julian@erf.tfs.com:
which is all devices really there except for disk slices/partitions.. (if I don't have it it's not there, which has GOT to be an improvement..)
no DEVFS fixes from device maintainers yet?
|
12678 |
08-Dec-1995 |
phk |
Julian forgot to make the *devsw structures static.
|
12675 |
08-Dec-1995 |
julian |
Pass 3 of the great devsw changes most devsw referenced functions are now static, as they are in the same file as their devsw structure. I've also added DEVFS support for nearly every device in the system, however many of the devices have 'incorrect' names under DEVFS because I couldn't quickly work out the correct naming conventions. (but devfs won't be coming on line for a month or so anyhow so that doesn't matter)
If you "OWN" a device which would normally have an entry in /dev then search for the devfs_add_devsw() entries and munge to make them right.. check out similar devices to see what I might have done in them in you can't see what's going on.. for a laugh compare conf.c conf.h defore and after... :) I have not doen DEVFS entries for any DISKSLICE devices yet as that will be a much more complicated job.. (pass 5 :)
pass 4 will be to make the devsw tables of type (cdevsw * ) rather than (cdevsw) seems to work here.. complaints to the usual places.. :)
|
12662 |
07-Dec-1995 |
dg |
Untangled the vm.h include file spaghetti.
|
12659 |
06-Dec-1995 |
bde |
Replaced #includes of <sys/user.h> by less gross headers, usually <sys/vm.h>. Many device drivers need only the definition of vtophys() from vm.
Added nearby #includes of <sys/conf.h> where appropriate.
|
12658 |
06-Dec-1995 |
bde |
Removed unnecessary #includes of <sys/user.h>. Some of these were just to get the definitions of TRUE and FALSE which happen to be defined in a deeply nested include.
Added nearby #includes of <sys/conf.h> where appropriate.
|
12541 |
30-Nov-1995 |
ache |
Fix my color/attr separation patch. Swap foreground/background logic to allow DIM REVERSE
|
12533 |
29-Nov-1995 |
wollman |
Fix Pentium CPU rate diagnosis: - Don't print out meaningless iCOMP numbers, those are for droids. - Use a shorter wait to determine clock rate to avoid deficiencies in DELAY(). - Use a fixed-point representation with 8 bits of fraction to store the rate and rationalize the variable name. It would be possible to use even more fraction if it turns out to be worthwhile (I rather doubt it).
The question of source code arrangement remains unaddressed.
|
12522 |
29-Nov-1995 |
bde |
Removed builtin list of port addresses. The address for sio3 conflicted with S3 graphics cards. Now users should put sio[2-3] in the config file if the hardware exisst, even if the probe is certain to fail due to an interrupt conflict. Otherwise, ports sharing the interrupt may fail the probe if the system is warm booted while sio[2-3] are active (perhaps under another OS). The same problem for nonstandard ports is now handled better than before.
|
12521 |
29-Nov-1995 |
julian |
If you're going to mechanically replicate something in 50 files it's best to not have a (compiles cleanly) typo in it! (sigh)
|
12517 |
29-Nov-1995 |
julian |
OK, that's it.. That's EVERY SINGLE driver that has an entry in conf.c.. my next trick will be to define cdevsw[] and bdevsw[] as empty arrays and remove all those DAMNED defines as well..
Each of these drivers has a SYSINIT linker set entry that comes in very early.. and asks teh driver to add it's own entry to the two devsw[] tables.
some slight reworking of the commits from yesterday (added the SYSINIT stuff and some usually wrong but token DEVFS entries to all these devices.
BTW does anyone know where the 'ata' entries in conf.c actually reside? seems we don't actually have a 'ataopen() etc...
If you want to add a new device in conf.c please make sure I know so I can keep it up to date too..
as before, this is all dependent on #if defined(JREMOD) (and #ifdef DEVFS in parts)
|
12502 |
28-Nov-1995 |
julian |
the second set of changes in a move towards getting devices to be totally dynamic.
this is only the devices in i386/isa I'll do more tomorrow. they're completely masked by #ifdef JREMOD at this stage... the eventual aim is that every driver will do a SYSINIT at startup BEFORE the probes, which will effectively link it into the devsw tables etc.
If I'd thought about it more I'd have put that in in this set (damn) The ioconf lines generated by config will also end up in the device's own scope as well, so ioconf.c will eventually be gutted the SYSINIT call to the driver will include a phase where the driver links it's ioconf line into a chain of such. when this phase is done then the user can modify them with the boot: -c config menu if he wants, just like now.. config will put the config lines out in the .h file (e.g. in aha.h will be the addresses for the aha driver to look.) as I said this is a very small first step.. the aim of THIS set of edits is to not have to edit conf.c at all when adding a new device.. the tabe will be a simple skeleton..
when this is done, it will allow other changes to be made, all teh time still having a fully working kernel tree, but the logical outcome is the complete REMOVAL of the devsw tables.
By the end of this, linked in drivers will be exactly the same as run-time loaded drivers, except they JUST HAPPEN to already be linked and present at startup.. the SYSINIT calls will be the equivalent of the "init" call made to a newly loaded driver in every respect.
For this edit, each of the files has the following code inserted into it:
obviously, tailored to suit.. ----------------------somewhere at the top: #ifdef JREMOD #include <sys/conf.h> #define CDEV_MAJOR 13 #define BDEV_MAJOR 4 static void sd_devsw_install(); #endif /*JREMOD */ ---------------------somewhere that's run during bootup: EVENTUALLY a SYSINIT #ifdef JREMOD sd_devsw_install(); #endif /*JREMOD*/ -----------------------at the bottom: #ifdef JREMOD struct bdevsw sd_bdevsw = { sdopen, sdclose, sdstrategy, sdioctl, /*4*/ sddump, sdsize, 0 };
struct cdevsw sd_cdevsw = { sdopen, sdclose, rawread, rawwrite, /*13*/ sdioctl, nostop, nullreset, nodevtotty,/* sd */ seltrue, nommap, sdstrategy };
static sd_devsw_installed = 0;
static void sd_devsw_install() { dev_t descript; if( ! sd_devsw_installed ) { descript = makedev(CDEV_MAJOR,0); cdevsw_add(&descript,&sd_cdevsw,NULL); #if defined(BDEV_MAJOR) descript = makedev(BDEV_MAJOR,0); bdevsw_add(&descript,&sd_bdevsw,NULL); #endif /*BDEV_MAJOR*/ sd_devsw_installed = 1; } } #endif /* JREMOD */
|
12494 |
28-Nov-1995 |
ache |
Separate colors & attributes as Terry points Reviewed by: soren
|
12475 |
24-Nov-1995 |
bde |
Fixed a comment.
|
12450 |
21-Nov-1995 |
bde |
Restored static variable `nsio_tty' which is used only by pstat(8). Made it `const' to inhibit compiler warnings.
Added #include of <pccard/driver.h> to get prototypes. <pccard/slot.h> is still necessary for its side effect of exporting non-slot things.
|
12429 |
20-Nov-1995 |
phk |
Mega commit for sysctl. Convert the remaining sysctl stuff to the new way of doing things. the devconf stuff is the reason for the large number of files. Cleaned up some compiler warnings while I were there.
|
12420 |
20-Nov-1995 |
phk |
Fix compiler warnings.
|
12359 |
18-Nov-1995 |
bde |
Fixed (nonexistent) initialization of bp->b_pblkno. disksort() for floppies must have been random in 2.x since we reintroduced sorting on b_pblkno on 1995/03/18. Drivers still initialize b_cylin/b_resid although this is no longer used.
Removed unused, wrong function fdsize(). (Returning 0 means that the device exists and has size 0, not that the device doesn't exist. swaponvp() allows for size 0 by stupidly calling the d_psize function twice if the size isn't 0. setdumpdev() doesn't allow for it.)
Continued removing /* ARGSUSED */ from drivers.
|
12080 |
04-Nov-1995 |
bde |
Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up the misplaced extern declarations (mostly prototypes of interrupt handlers) that this exposed. The prototypes should be moved back to the driver sources when the functions are staticalized.
Added idempotency guards to <machine/conf.h>. "ioconf.h" can't be included when building LKMs so define a wart in bsd.kmod.mk to help guard against including it.
|
12078 |
04-Nov-1995 |
markm |
Remove the #ifdev DEVRANDOM's, as promised.
/dev/random is now a part of the kernel! you will need to make the device in /dev: sh MAKEDEV random and take a look at some test code in src/tools/test/random.
|
12071 |
04-Nov-1995 |
bde |
Moved prototypes for devswitch functions from conf.c and driver sources to <machine/conf.h>. conf.h was mechanically generated by `grep ^d_ conf.c >conf.h'. This accounts for part of its ugliness. The prototypes should be moved back to the driver sources when the functions are staticalized.
|
11875 |
28-Oct-1995 |
markm |
Theodore Ts'po's random number gernerator for Linux, ported by me. This code will only be included in your kernel if you have 'options DEVRANDOM', but that will fall away in a couple of days. Obtained from: Theodore Ts'o, Linux
|
11872 |
28-Oct-1995 |
phk |
Remove unused functions and variables, make things static, and other cleanups.
|
11671 |
22-Oct-1995 |
bde |
sio.c: Fix the tests for being a console by reverting to the ones that were used before the the RB_SERIAL changes. RB_SERIAL only needs to be tested in one place. The initialization of comconsole was wrong before the RB_SERIAL changes for the COMCONSOLE case. This may have been the cause of the unnecessary changes.
Start eliminating #includes of <i386/i386/cons.h>. This header is supposed to be included from <machine> although it should be completely machine-independent and included from <sys>.
Remove a wrong XXX comment. `comconsole' is used to test for being a console and even the tests for deciding the default termios state are necessary (the semi-reentrant i/o routines don't handle ordinary device i/o).
cy.c: Sync with sio.c. The console tests are present but always fail.
|
11602 |
21-Oct-1995 |
phk |
A mixed bag of changes, relating to getting the state in "lsdev" right, and pccard support to work sensibly. Better by far, but still not good.
|
11466 |
14-Oct-1995 |
bde |
Don't allow i/o operations for non-root users.
Add prototypes.
|
11452 |
12-Oct-1995 |
wollman |
Reduce jitter of Pentium microtime() implementation by letting the counter free-run and doing a subtract in microtime() rather than resetting the counter to zero at every clock tick. In combination with the changes to kern_clock.c, this should eliminate all the immediately obvious sources of systematic jitter in timekeeping on Pentium machines.
|
11375 |
09-Oct-1995 |
joerg |
BIOS manufacturers don't seem to have a unique idea about 2.88 MB floppy drive types in the CMOS; add 0x50 as an alias for 2.88 MB.
|
11162 |
04-Oct-1995 |
joerg |
Hide the "input/output timeout" messages behind the bootverbose case. This message has been confusing innocent ft users.
It should go into 2.1 as well, it's a very simple fix.
|
10985 |
24-Sep-1995 |
dg |
siostop() is a void function, so don't return a value.
|
10903 |
19-Sep-1995 |
phk |
The stuff needed to remove a pccard with a sio port on it... Not optimal, but pretty solid.
|
10823 |
16-Sep-1995 |
bde |
Remove transitory labelling code. Labels are now handled by essentially the original 4.4lite code. Machine Specific Partitions are now handled separately.
|
10666 |
10-Sep-1995 |
bde |
Make pcvt and syscons live in the same kernel. If both are enabled, then the first one in the config has priority. They can be switched using userconfig().
i386/i386/conf.c: Initialize the shared syscons/pcvt cdevsw entry to `nx'.
Add cdevsw registration functions.
Use devsw functions of the correct type if they exist.
i386/i386/cons.c: Add renamed syscons entry points to constab.
i386/i386/cons.h: Declare the renamed syscons entry points.
i386/i386/machdep.c: Repeat console initialization after userconfig() in case the current console has become wrong. This depends on cn functions not wiring down anything important.
sys/conf.h: Declare new functions.
i386/isa/isa.[ch]: Add a function to decide which display driver has priority. Should be done better.
i386/isa/syscons.c: Rename pccn* -> sccn*.
Initialize CRTC start address in case the previous driver has moved it.
i386/isa/syscons.c, i386/isa/pcvt/* Initialize the bogusly shared variable Crtat dynamically in case the stored value was changed by the previous driver.
Initialize cdevsw table from a template.
Don't grab the console if another display driver has priority.
i386/isa/syscons.h, i386/isa/pcvt/pcvt_hdr.h: Don't externally declare now-static cdevsw functions.
i386/isa/pcvt/pcvt_hdr.h: Set the sensitive hardware flag so that pcvt doesn't always have lower priority than syscons. This also fixes the "stupid" detection of the display after filling the display with text.
i386/isa/pcvt/pcvt_out.c: Don't be confused the off-screen cursor offset 0xffff set by syscons.
kern/subr_xxx.c: Add enough nxio/nodev/null devsw functions of the correct type for syscons and pcvt.
|
10644 |
08-Sep-1995 |
bde |
Actually, 97 out of 304 devsw functions had benignly mismatched types.
|
10537 |
03-Sep-1995 |
julian |
devfs changes.. changes to allow devices that don't probe (e.g. /dev/mem) to create devfs entries this required giving 'configure' its own SYSINIT entry so we could duck in just before it with a DEVFS init and some device inits.. my devfs now looks like: ./misc ./misc/speaker ./misc/mem ./misc/kmem ./misc/null ./misc/zero ./misc/io ./misc/console ./misc/pcaudio ./misc/pcaudioctl ./disks ./disks/rfloppy ./disks/rfloppy/fd0.1440 ./disks/rfloppy/fd1.1200 ./disks/floppy ./disks/floppy/fd0.1440 ./disks/floppy/fd1.1200 also some sligt cleanups.. DEVFS needs a lot of work but I'm getting back to it..
|
10268 |
25-Aug-1995 |
bde |
Remove extra args from the calls to getit(). The bug was benign with the default function call convention.
|
10216 |
24-Aug-1995 |
phk |
Andrew McRae's pcmcia/pccard code, the kernel part.
This is still very green, but I have managed to get my modem working. Lots of work still to do, but now at least we can commit it. /phk
Reviewed by: phk Submitted by: Andrew McRae <andrew@mega.com.au>
|
10082 |
16-Aug-1995 |
nate |
Added missing semi-colon in the XT_KEYBOARD code. W/out it the code would not compile.
|
10040 |
13-Aug-1995 |
bde |
Disable fifos in sioclose(). Closes PR 576.
|
10005 |
08-Aug-1995 |
dyson |
Fixed a problem that malloc(..,..,M_NOWAIT) was being called without checking for return values. It just so happens that in the cases where it is likely to fail, it is okay to change the M_NOWAIT to M_WAITOK -- and all will be well. This problem was manfest as a panic very regularly on a 4MB system right after bootup.
|
9825 |
31-Jul-1995 |
bde |
Sleep on a better address to wait for output to drain out of the hardware. Set the sleep-on flag for the address so there is more than a small chance that the sleep address is actually used (this used to work by timing out). Don't bother clearing the sleep-on flag after a timeout here or elsewhere since leaving it set just generates a few null calls to wakeup().
|
9824 |
31-Jul-1995 |
bde |
Obtained from: partly from ancient patches of mine via 1.1.5
Introduce TS_CONNECTED and TS_ZOMBIE states. TS_CONNECTED is set while a connection is established. It is set while (TS_CARR_ON or CLOCAL is set) and TS_ZOMBIE is clear. TS_ZOMBIE is set for on to off transitions of TS_CARR_ON that occur when CLOCAL is clear and is cleared for off to on transitions of CLOCAL. I/o can only occur while TS_CONNECTED is set. TS_ZOMBIE prevents further i/o.
Split the input-event sleep address TSA_CARR_ON(tp) into TSA_CARR_ON(tp) and TSA_HUP_OR_INPUT(tp). The former address is now used only for off to on carrier transitions and equivalent CLOCAL transitions. The latter is used for all input events, all carrier transitions and certain CLOCAL transitions. There are some harmless extra wakeups for rare connection- related events. Previously there were too many extra wakeups for non-rare input events.
Drivers now call l_modem() instead of setting TS_CARR_ON directly to handle even the initial off to on transition of carrier. They should always have done this. l_modem() now handles TS_CONNECTED and TS_ZOMBIE as well as TS_CARR_ON.
gnu/isdn/iitty.c: Set TS_CONNECTED for first open ourself to go with bogusly setting CLOCAL.
i386/isa/syscons.c, i386/isa/pcvt/pcvt_drv.c: We fake carrier, so don't also fake CLOCAL.
kern/tty.c: Testing TS_CONNECTED instead of TS_CARR_ON fixes TIOCCONS forgetting to test CLOCAL. TS_ISOPEN was tested instead, but that broke when we disabled the clearing of TS_ISOPEN for certain transitions of CLOCAL.
Testing TS_CONNECTED fixes ttyselect() returning false success for output to devices in state !TS_CARR_ON && !CLOCAL.
Optimize the other selwakeup() call (this is not related to the other changes).
kern/tty_pty.c: ptcopen() can be declared in traditional C now that dev_t isn't short.
|
9822 |
31-Jul-1995 |
bde |
Improve input flow control.
Use input buffer watermarks of TTYHOG-512 (high) and (high)*7/8 (low) instead of TTYHOG/2 (high) and TTYHOG/5 (low) to agree with some drivers. 512 is magic and some things depended on TTYHOG/2 >= TTYHOG-512 to work; now they depend on the 512 magic not changing and TTYHOG-512 being significantly larger than 0. This should be handled in ttsetwater().
Separate the decision about whether to do input flow control from doing it. ttyblock() now just starts input flow control (hardware and/or software) and there is a new function ttyunblock() to stop it. The decisions are the same except for the watermark changes and allowing for input expansion for PARMRK.
When flushing input, try harder at first to send a start character if required, but give up if the first attempt fails.
cy.c, rc.c, sio.c: Simplify: let ttyinput() handle input flow control if it is not being bypassed. Use ttyblock() to start flow control otherwise.
rc.c: Use same input flow control test as elsewhere: test in a more efficient order and start flow control at >= highwater instead of at > highwater.
|
9757 |
29-Jul-1995 |
bde |
Don't let IXOFF or ECHONL stop the setting of TS_CAN_BYPASS_L_RINT. IXOFF is handled at a low level, and ECHONL only applies if ICANON is set, although tty.c sometimes bogusly applies it when ICANON isn't set.
|
9754 |
29-Jul-1995 |
bde |
Always wake up writers after clearing TS_BUSY. This will soon be essential when I fix excessive wakeups for output-below-low-water. In cy.c and sio.c, wake up via the driver start routine to also eliminate duplicated code involving the clearing of TS_TTSTOP.
Always (except in code to be replaced soon) call driver start routine directly instead of going through ttstart().
|
9639 |
22-Jul-1995 |
bde |
Obtained from: partly from ancient patches of mine via 1.1.5
Give names to the magic tty i/o sleep addresses and use them. This makes it easier to remember what the addresses are for and to keep them unique.
|
9626 |
22-Jul-1995 |
bde |
Move the inline code for waking up writers to a new function ttwwakeup(). The conditions for doing the wakeup will soon become more complicated and I don't want them duplicated in all drivers.
It's probably not worth making ttwwakeup() a macro or an inline function. The cost of the function call is relatively small when there is a process to wake up. There is usually a process to wake up for large writes and the system call overhead dwarfs the function call overhead for small writes.
|
9625 |
21-Jul-1995 |
bde |
Obtained from: partly from ancient patches of mine via 1.1.5
Move static termioschars() from a couple of drivers to tty.c. Now there is only one copy of ttydefchars[].
|
9484 |
11-Jul-1995 |
bde |
Fix races in scstart(). q_to_b() wasn't called at spltty(), so there were two races: - q_to_b() might unexpectedly return 0 (e.g, after a keyboard signal flushes the output queue and isn't echoed). ansi_put() interprets 0 bytes as 4GB... - more output (e.g. for echoes) might arrive afer q_to_b() returns 0. Then scstart() returns presumably and the new output might not be handled for a long time.
Remove unused function scxint().
Fix prototypes (foo() isn't a prototype).
|
9483 |
11-Jul-1995 |
bde |
Speed up the inner loop of ansi_put() by a few percent.
syscons' output is now only about 4-5 times slower than I want. It loses a factor of 2 for scrolling output by unnecessarily copying the screen buffer, a factor of 4/3 for dumb OPOST processing, and a factor of 3/2 for clist processing.
|
9407 |
05-Jul-1995 |
bde |
Fix error logging: - get the timeout countdown right - report everything before turning timeouts off.
|
9366 |
28-Jun-1995 |
ache |
Fight with hanging modems continued: return EIO after t_timeout expired instead infinite looping in "siotx" in comparam, consuming CPU time.
|
9307 |
25-Jun-1995 |
bde |
Reduce timeout frequency from `hz' to 0 if no ports are open or to 1 if no ports are active, provided there are no polled ports and no `LOSESOUTINTS' ports. Do a little more in the interrupt handler instead. This is a little less efficient if there are are many active ports but a little more efficient otherwise. Polled ports are ones with no irq specified (as before). `LOSESOUTINTS' ports are ones with 0x08 set in their config flags. Unless this flag is set, it will now take up to one second to recover from lost output interrupts, if any. Some 8250s and 16450s lose output interrupts.
Improve output buffering: copy the clist buffer to 2 linear buffers if necessary and possible instead of to 1. Handle an arbitrary queue of buffers in the interrupt handler. Check for waking up sleepers after copying characters out of the clist buffer instead of before.
Delay translation of TIOCM_DTR to MCR_DTR etc. so that the top level routines are more machine independent.
Fix bogus device register in unused code.
|
9219 |
14-Jun-1995 |
bde |
Don't convert \n to \r\n in pccnputc(). This is the responsibility of cnputc().
|
9202 |
11-Jun-1995 |
rgrimes |
Merge RELENG_2_0_5 into HEAD
|
8876 |
30-May-1995 |
rgrimes |
Remove trailing whitespace.
|
8683 |
21-May-1995 |
sos |
Fixed problem with "char" cursor..
Submitted by: ache
|
8456 |
11-May-1995 |
rgrimes |
Fix -Wformat warnings from LINT kernel.
|
8448 |
11-May-1995 |
bde |
Add variable `idelayed' and macros setdelayed() and schedsofttty() to access it. setdelayed() actually ORs the bits in `idelayed' into `ipending' and clears `idelayed'.
Call setdelayed() every (normal) clock tick to convert delayed interrupts into pending ones.
Drivers can set bits in `idelayed' at any time to schedule an interrupt at the next clock tick. This is more efficient than calling timeout(). Currently only software interrupts can be scheduled.
|
8376 |
09-May-1995 |
rgrimes |
Fix -Wformat warnings, still need to do something about %b and pointer type args.
|
8333 |
07-May-1995 |
ache |
Add hook for pstat -t
|
8310 |
06-May-1995 |
joerg |
Restructured the floppy tape probe.
The ``flags 1'' in the fdc line is now only needed for owners of an Insight tape (perhaps there aren't any? Mine is disfunctional). All other probes are safe wrt. to the motor-control line of floppy disk drives. Document the flag in LINT finally.
|
8123 |
28-Apr-1995 |
sos |
Added nsccons variable for use by pstat Submitted by: ache
|
8061 |
25-Apr-1995 |
sos |
Added mark_all() call so that screen is proberly updated when scroll-lock history is disengaged.
|
8022 |
23-Apr-1995 |
bde |
Move declarations of console functions to cons.h (they should be config(8)ed).
Update other misplaced prototypes.
|
8017 |
23-Apr-1995 |
bde |
Correct the type of the `c' arg to pccnputc().
Move declarations of console functions to cons.h so that they can't be defined inconsistently in several places. They should be config(8)ed.
|
7945 |
20-Apr-1995 |
julian |
Reviewed by: no-one yet, but non-intrusive Submitted by: julian@tfs.com Obtained from: written from scratch
slight changes to make space for devfs.. (also conditional test code in i386/isa/fd.c)
=================================================================== RCS file: /home/ncvs/src/sys/sys/malloc.h,v retrieving revision 1.7 diff -r1.7 malloc.h 113a114,117 > #define M_DEVFSMNT 62 /* DEVFS mount structure */ > #define M_DEVFSBACK 63 /* DEVFS Back node */ > #define M_DEVFSFRONT 64 /* DEVFS Front node */ > #define M_DEVFSNODE 65 /* DEVFS node */ 184c188,192 < NULL, NULL, NULL, NULL, NULL, \ --- > "DEVFS mount", /* 62 M_DEVFSMNT */ \ > "DEVFS back", /* 63 M_DEVFSBACK */ \ > "DEVFS front", /* 64 M_DEVFSFRONT */ \ > "DEVFS node", /* 65 M_DEVFSNODE */ \ > NULL, \ Index: sys/mount.h =================================================================== RCS file: /home/ncvs/src/sys/sys/mount.h,v retrieving revision 1.16 diff -r1.16 mount.h 100c100,101 < #define MOUNT_MAXTYPE 15 --- > #define MOUNT_DEVFS 16 /* existing device Filesystem */ > #define MOUNT_MAXTYPE 16 118a120 > "devfs", /* 15 MOUNT_DEVFS */ \ Index: sys/vnode.h =================================================================== RCS file: /home/ncvs/src/sys/sys/vnode.h,v retrieving revision 1.19 diff -r1.19 vnode.h 61c61 < VT_UNION, VT_MSDOSFS --- > VT_UNION, VT_MSDOSFS, VT_DEVFS
|
7855 |
15-Apr-1995 |
bde |
Fix initializations of kdc_state for serial consoles.
Change order of RTS flow control tests so that less tests are required in the usual case.
Clean up parts of previous commits. Cosmetic.
|
7799 |
13-Apr-1995 |
wollman |
Forgot two things in yesterday's massive devconf update: initialized class for sio don't bogusly re-initialize it in sio_registerdev()
|
7797 |
13-Apr-1995 |
ache |
Move setcompat code to another place, initial/locked devices not supposed to work with old style ioctls
|
7795 |
13-Apr-1995 |
ache |
Comment out ttcompat via COMPAT_SUNOS too Fix error handling initial/callout devices
|
7782 |
12-Apr-1995 |
phk |
ttsetcompat is a '#ifdef COMPAT_43' feature. Dropping into the debugger when a break comes down the serial line is a >MISFEATURE (1st class)< and has been put under it's own #ifdef. This should be a magic sequence of chars instead.
|
7780 |
12-Apr-1995 |
wollman |
Add a class field to devconf and mst drivers. For those where it was easy, drivers were also fixed to call dev_attach() during probe rather than attach (in keeping with the new design articulated in a mail message five months ago). For a few that were really easy, correct state tracking was added as well. The `fd' driver was fixed to correctly fill in the description. The CPU identify code was fixed to attach a `cpu' device. The code was also massively reordered to fill in cpu_model with somethingremotely resembling what identifycpu() prints out. A few bytes saved by using %b to format the features list rather than lots of ifs.
|
7759 |
11-Apr-1995 |
ache |
Call new ttsetcompat() function for proper working old v7 ioctls with locking bits.
|
7643 |
06-Apr-1995 |
rgrimes |
Correct recalibrate/seek code at attach time so that we do not get all the ``fdc0: ready for output in input'' messages when probing for ft devices.
Submitted by: Steve Gerakines <steve2@genesis.tiac.net>
|
7623 |
04-Apr-1995 |
sos |
Fixes to the hardware cursor emulation. Submitted by: ache
|
7619 |
04-Apr-1995 |
ache |
Move unit structure member down to optimize com->state per Bruce suggestion. Move hotchar setting to set_bypass routine and rename it to disc_optim
|
7606 |
03-Apr-1995 |
ache |
Allow serial console BREAK to DDB Use com->unit in several places
|
7595 |
02-Apr-1995 |
ache |
Back out changes related to locked bits until more elegant solution will be found. Remove some unused variables sneaked in.
|
7583 |
02-Apr-1995 |
ache |
Fix error: old type (stty) ioctls can easily bypass locking bits. It involves manual conversion from old ioctls to new ones, large piece of code duplicated from tty_compat.c
|
7578 |
02-Apr-1995 |
ache |
Move SET_BYPASS macro to function per Bruce suggestion. Add set_bypass() call after l_close. Move ttioctl()/set_bypass() pair under spltty() protection
|
7569 |
01-Apr-1995 |
ache |
Move setting BYPASS state to macro, use it in several times, after ttioctl too, because it can change t_line. Remove (TS_CNTTB | TS_LNCH) test, it is always inherits from old tty mode and can't be reach in currently setted mode.
|
7568 |
01-Apr-1995 |
ache |
Adjust TS_CAN_BYPASS_L_RINT state after l_open(), t_line can be changed there.
|
7564 |
01-Apr-1995 |
bde |
Fix count in mark_for_update() for insert-char(s) and delete-char(s). Everything from the cursor to the end of the line must be updated.
Fix comment about erase-char(s).
|
7553 |
01-Apr-1995 |
ache |
Use new TS_CAN_BYPASS_L_RINT state to avoid complex test each time. Remove unefficient loop of zeroing error chars in siopoll(), now done at interrupt level.
|
7546 |
01-Apr-1995 |
ache |
Check for never opened or closed device before testing terminal flags at interrupt level
|
7498 |
30-Mar-1995 |
sos |
Emulate hw cursor closely, and get start&end scanlines from BIOS.
|
7475 |
29-Mar-1995 |
sos |
Optimized the way physical screen updates are done. Now only update what has actually been touched. This should speed up screen access on slow hardware. Introduced setting of "destructive" cursor size, much like the old hardware cursor.
|
7473 |
29-Mar-1995 |
ache |
Fix serial error recording using new TTY_BI & TTY_OE
|
7468 |
29-Mar-1995 |
ache |
Remove TTY_OE & TTY_BI definitions to allow translation, more work required and will follow
|
7452 |
28-Mar-1995 |
sos |
Change fkey 63 from ^[[K to ^[[~. Submitted by: ache
|
7448 |
28-Mar-1995 |
ache |
Move discard check up and do it only for error status (per Bruce suggestion). It speedup things for a little. Remove l_start optimization, call l_start always (per Bruce suggestion)
|
7441 |
28-Mar-1995 |
ache |
Don't use if (tp->t_line != 0) test when CS_ODONE, it fails for NTTYDISC, use if (linesw[tp->t_line].l_start != ttstart) instead.
Reviewed by: Submitted by: Obtained from: CVS:
|
7440 |
28-Mar-1995 |
ache |
Forget to add LSR_FE to discard (see prev commit) Reviewed by: Submitted by: Obtained from: CVS:
|
7438 |
28-Mar-1995 |
ache |
Several fixes to help "raw" tty mode work correctly with BREAK/parity/framing errors. Term "correctly" assumes POSIX spec. and 4.4 ttyinput() behaviour. 1) Discard BREAK/parity at interrupt level when apropriate IGN* is set in iflag. It helps "raw" mode works even IGN* is set. 2) Zero parity (if INPCK) and framing directly in buffer before passing it to b_to_q() in "raw" mode. Efficency: interrupt level: if no error occurse, only two "test" commands added "raw" mode: buf scan incc times for parity/framing added
Reviewed by: Submitted by: Obtained from: CVS:
|
7430 |
28-Mar-1995 |
bde |
Add and move declarations to fix all of the warnings from `gcc -Wimplicit' (except in netccitt, netiso and netns) that I didn't notice when I fixed "all" such warnings before.
|
7428 |
28-Mar-1995 |
ache |
Raw ttyinput test was incomplete, add !(IGNBRK | BRKINT | PARMRK) now.
|
7425 |
28-Mar-1995 |
ache |
Fix break recording for ttyinput
|
7420 |
27-Mar-1995 |
sos |
Give backspace to the people (again)
Now the keymaps are as follows:
"backspace / <-" ^H "grey del" ^? (0x7f) "numpad , del" ^? (, if numlocked)
|
7393 |
26-Mar-1995 |
rgrimes |
Terminate all probe/diagnostic/error messages correctly with a \n.
Report floppy/tape units on seperate lines as fdX:/ftX: to correct lots of ways the current scheme failed to end the output with \n.
Add controller and/or drive designator to the fron of several messages that come from this drive. [It's not fun to track down driver messages using grep over the source tree.] Reviewed by: joerg
|
7090 |
16-Mar-1995 |
bde |
Add and move declarations to fix all of the warnings from `gcc -Wimplicit' (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
|
7042 |
12-Mar-1995 |
joerg |
Finally get rid of this bothering ``biodone: buffer already done'' warning. The buffer needs only to be `biodone()' again if the format operation timed out; otherwise fdstate() did already do the job.
|
6868 |
03-Mar-1995 |
ache |
Fix flag bugs with RUKEYMAP
|
6851 |
03-Mar-1995 |
sos |
Minor update to syscons. Let "grey delete" be a function key (default is 0x7f) Fix the xor cursor again.. Made the backspace key generate del as default Made CTRL-space generate nul as default.
|
6790 |
28-Feb-1995 |
ache |
Workaround IXOFF bug when output queue is full && RTS control is on
|
6782 |
28-Feb-1995 |
pst |
Incorporate bde's code-review comments.
(a) bring back ttselect, now that we have xxxdevtotty() it isn't dangerous. (b) remove all of the wrappers that have been replaced by ttselect (c) fix formatting in syscons.c and definition in syscons.h (d) add cxdevtotty
NOT DONE: (e) make pcvt work... it was already broken...when someone fixes pcvt to link properly, just rename get_pccons to xxxdevtotty and we're done
|
6734 |
26-Feb-1995 |
bde |
Replace all remaining instances of `i386/include' by `machine' and fix nearby #include inconsistencies.
|
6728 |
26-Feb-1995 |
bde |
Don't confuse the frequency with the wavelength in DELAY() args. 960 cps is close to 1000000 / 960 usec so the confusion probably didn't matter.
Test for COMCONSOLE before testing for RB_SERIAL so that the RB_SERIAL test can be optimized away if COMCONSOLE is 1.
Simplify and Uniformize style of previous commit.
|
6724 |
26-Feb-1995 |
bde |
Declare all the args of Fdopen() and fdclose().
Initialize dk_wpms[] less bogusly.
Clean up includes.
Remove some obsolete comments.
|
6712 |
25-Feb-1995 |
pst |
(a) remove the pointer to each driver's tty structure array from cdevsw (b) add a function callback vector to tty drivers that will return a pointer to a valid tty structure based upon a dev_t (c) make syscons structures the same size whether or not APM is enabled so utilities don't crash if NAPM changes (and make the damn kernel compile!) (d) rewrite /dev/snp ioctl interface so that it is device driver and i386 independant
|
6676 |
24-Feb-1995 |
ache |
Revive input flow control, some ideas from iverson@leonheart.com Get rid of TS_RTS_IFLOW, all kinds of input flow control handled by only one flag now: TS_TBLOCK Add missing put(VSTOP) when IXOFF control is active.
|
6644 |
22-Feb-1995 |
jmz |
Put the joystick status in a struct {int x, y, b1, b2;} rather than in a dummy array of 4 integers. Declare the struct in the header file and update the man page.
|
6628 |
22-Feb-1995 |
sos |
Next syscons update (given up on numbering :)
Removed screensavers from syscons, they are now LKM's. This makes it possible to do some really "interesting" screensavers... Fixed bug that sometimes caused garbage to appear when leaving "scroll-lock" history. Reformattet indentation, it got too deep for a normal 80 pos screen. Split up in syscons.c & syscons.h for use with the saver-lkm's. Temporarily removed -s option from vidcontrol, savers should now be loaded with modload.
|
6512 |
17-Feb-1995 |
phk |
This is the latest version of the APM stuff from HOSOKAWA, I have looked briefly over it, and see some serious architectural issues in this stuff.
On the other hand, I doubt that we will have any solution to these issues before 2.1, so we might as well leave this in.
Most of the stuff is bracketed by #ifdef's so it shouldn't matter too much in the normal case.
Reviewed by: phk Submitted by: HOSOKAWA, Tatsumi <hosokawa@mt.cs.keio.ac.jp>
|
6374 |
14-Feb-1995 |
sos |
Fixed cursor xor problem...
|
6229 |
07-Feb-1995 |
sos |
Fixed the bug that caused the cursor to disappear under boot with -c option
|
6208 |
05-Feb-1995 |
sos |
Fixed the annoing bug that caused writes to /dev/console to go to the active virtual terminal (Boy, do I have little hair left). Misc other fixes, try to enable cursor earlier in the game.
|
6161 |
03-Feb-1995 |
sos |
Allow all characters except "real" control chars. Fix NULL reference when serial console (thanks bruce).
|
6098 |
01-Feb-1995 |
sos |
Syscons bug fix: tab now right (thanks bruce!) Mouse arrow support almost finished.
|
6044 |
30-Jan-1995 |
sos |
Reviewed by: Submitted by: Obtained from:
|
5998 |
29-Jan-1995 |
jmz |
Add parentheses around macros!
|
5994 |
28-Jan-1995 |
sos |
Third round in syscons update.
Display update method changed, now allways write in memory buffer, then periodically update physical display. Speed improvements (now > 5 times faster than the old syscons). History now circular buffer, with changeable size. History scroll by up/down line, up/down page, home and end. Backtab proberly implemented. Now space for 96 function keys, 63 allocated standard, default now SCO/SYSV compat again as in the old days. New keyboard definition files ~share/syscons/keymaps/* Misc fixes for old "hacks" that broke SCO/SYSV compat. More that I forgot before writing this...
|
5993 |
28-Jan-1995 |
jmz |
Do not recompute TIMER0's maximum count, since it is in timer0_max_count. Use a simpler formula to convert usecs to ticks. Output is in microseconds instead of ticks, so that values do not depend on the timer frequency.
|
5962 |
27-Jan-1995 |
jkh |
Back out my previous change and disable the floppy tape controller again by default. It's hosing up my test machine's floppy pretty good.
|
5935 |
26-Jan-1995 |
ache |
Use NUM_FKEYS instead of hardcoded 65 for fkey_tab size
|
5933 |
26-Jan-1995 |
ache |
Get rid of overloaded Keypad 5, now F(65)
|
5932 |
26-Jan-1995 |
ache |
Get rid of overloaded Back tab, now F(64)
|
5931 |
26-Jan-1995 |
ache |
Rewrite fkey_tab to produce unique sequences for all fkeys Get rid of overloaded fkeys
|
5924 |
26-Jan-1995 |
ache |
Implement Delete key properly, needed by ncurses
|
5920 |
26-Jan-1995 |
ache |
o Restore removed hardware cursor support and make it _default_ case, software cursor now optional case. Driver must provide raw things (what hardware do for us, exactly) as default case, all driver features must be _optional_. Modern VGAs have internal configuration utilities to set cursor shape/blinking which stored into cards ROM, and syscons nuke out such features completely by forcing software cursor. Moreover, software cursor is hard to distinguish on standouted (or near standouted) fields and tends to disappearse from the screen. Set "flags 0x4" to enable software cursor now.
o Cleanup screen savers.
o Don't draw cursor if saver or blinker is active.
o Duplicated code moved to functons.
o Add more checks for blinker in progress, character lost otherwise when blinker restore old contents.
o Reduce blinking counter to 3, too slow in old variant.
o Fix timeout code in scrn_timer(), old variant can reenter iself, if action takes too long time.
o Disable visual bell for scroll lock mode, saved screen becomes overwritted otherwise.
|
5897 |
25-Jan-1995 |
jmz |
Changed address of the game controller to 0x201 (was 0x200) joy.c: joystick driver
|
5747 |
20-Jan-1995 |
sos |
Second round in syscons update:
Support for pseudo graphic mouse cursor (not complete yet) Some cheap speed fixes. More cleanups. Call ourselves scxxxx finally.
|
5744 |
20-Jan-1995 |
wpaul |
Submitted by: Bill Paul (wpaul@ctr.columbia.edu) Obtained from: sio.c and sioreg.c changed to allow autodetecting the RB_SERIAL flag passed by the boot blocks so that the kernel can switch to 'serial console' mode automagically. 'options COMCONSOLE' can still be specified to force the kernel to always use the serial port as a console. CONUNIT and CONADDR can also be specified in the kernel config file if the user wants to shift the console to a different port.
|
5722 |
19-Jan-1995 |
ats |
Submitted by: Bruce Evans Put in the much shorter and cleaner version for the calibrate_cycle_counter for the Pentium that Bruce suggested. Tested here on my Pentium and it works okay.
|
5680 |
17-Jan-1995 |
jkh |
Enable floppy-tape controller by default again. Flags no longer has any special meaning.
|
5572 |
13-Jan-1995 |
sos |
Oops, forgot one change when DDB is defined.
|
5567 |
13-Jan-1995 |
ache |
Use (n - 1) in ESC [ xxx d and ESC [ xxx `
|
5553 |
12-Jan-1995 |
ache |
Back out cursor wrap (restore original thing) Submitted by: Bill Paul
|
5552 |
12-Jan-1995 |
joerg |
Argl!, finally found this bummer. The code testing for a write- protected drive at open() time has been *totally bogus*! The guy who submitted it didn't understand all the implications of calling set_motor(), and the `who' who included the patch into the tree did it blindly... Pleeeeze, don't commit code to this driver unless you are really going to understand what it does! This one caused me to pull out even more hears, and those who know me do know that i ain't got too many o'them. :-)
|
5536 |
12-Jan-1995 |
sos |
First round in syscons update. Several new features has been added:
No kernel config options anymore besides keyboard language layout. Virtual consoles are now dynamically allocated, no NCONS anymore. Software cursor blinking/nonblinking. Visual bell for laptops (don't beep at meetings :-). Cursor/bell default type setable via config "flags" instead of as defines. Cursor/bell type setable via ioctl's. New video modes 80x30 80x60 for some laptops, and those with multisync monitors. Scroll-lock history (length currently fixed at 100 lines). Lots of cleanups, some only commented out for now (will goaway soon). Support for new features in vidcontrol/kbdcontrol. Updated manpages.
|
5512 |
11-Jan-1995 |
joerg |
Finally implement support for the `lsdev' program. The controller is now marked busy as long as it's being in non-reset state, and the drives are busy as long as at least one instance is open.
Also reformat everything to fit into 80 columns again.
Changed my mind wrt. error reporting for a write-protected drive and an open() with write intent; ENXIO has been too weird, now return EIO. Some portions of the code need to be rewritten to use tprintf() instead of simple printf()'s, so the messages will also appear on the session terminal, however.
|
5431 |
07-Jan-1995 |
ats |
Work around a compiler bug in gcc2.6.3 in handling (long long) variables and shifting. Also correct the original code as Garrett noticed it in mail. Leave the mishandled code in to use it later if future versions of gcc are correct. The code was part of the calibrate_cyclecounter routine to get the speed of the pentium chip.
|
5417 |
06-Jan-1995 |
joerg |
Peter's work to work around one of the most annoying bugs in the floppy driver (or in the hardware?). It turned out to be caused by spurious interrupts, right after an FDC reset.
Also major cleanup in the low-level structure, there are now functions performing error-checks for the FDC I/O.
Submitted by: (mostly) Peter Dufault <dufault@FreeBSD.org>
|
5416 |
06-Jan-1995 |
bde |
Fix scaling for TIOCM[SG]DTRWAIT to work when hz != 100.
Bruce
|
5396 |
05-Jan-1995 |
ache |
Fight against hanging modems: add timeout to ttywait. Reviewed by: Bruce
|
5359 |
03-Jan-1995 |
bde |
Don't allow negative console numbers for the VT_WAITACTIVE ioctl. Use the correct console number for the VT_WAITACTIVE ioctl. Invalid console numbers caused waiting on an invalid pointer.
Use bcopyw() instead of move_up() and move_down(). bcopyw() handles overlapped copies and should be faster. Actually use bcopy(). bcopy() is slightly faster if video memory is 16-bit and about twice as fast if it is 32-bit. bcopy() is said to fail on someGA's, but syscons already depends on it working for other accesses to video memory.
|
5329 |
31-Dec-1994 |
ats |
Change the errors in the XT_KEYBOARD patch. red in the face. Thanks Bruce.
|
5320 |
31-Dec-1994 |
jkh |
Miscellaneous changes from Bill Paul:
- /sys/i386/isa/if_ed.c doesn't quite know how to deal with SMC EtherEZ ethernet cards. The EtherEZ looks just like the Elite Ultra, except it has only 8K of shared memory. The only way to have it properly detected is to zero and test a few bytes of memory just about the first 8K region. If it clears properly, it's an Elite Ultra, otherwise it's an EtherEZ.
I've also got an EtherEZ patch for netboot (Makefile, ether.c and ether.h).
- /sys/i386/isa/syscons.c wraps at the next to the last column rather than the last column, like it should. You don't really notice this unless you use certain programs that write all the way out to, say, the 80th column, like VMSmail. Along with a one-line fix for this are some changes to implement a non-blinking cursor. Put 'options "NOBLINK_CURSOR"' in your config file and give it a try. :)
Submitted by: wpaul
|
5308 |
31-Dec-1994 |
ache |
Changes to allow keypad 5 produce \E[E like SCO/ANSI term does
|
5291 |
30-Dec-1994 |
bde |
icu.s: Move definition of `stat_imask' to clock.c.
clock.c: Rename `rtcmask' to `stat_imask' and export it. Rename `clkmask' to `clk_imask' for consistency.
Only calculate TIMER_DIV(hz) once.
Merge debugging and "garbage" code to produce debugging code and format the output better.
Make writertc() static inline and use it everywhere. Now all accesses to the clock registers go through rtcin() and writertc().
Move rtc initialization to cpu_initclocks().
Merge enablertclock() with cpu_initclocks() and remove enablertclock(). The extra entry point was just a leftover from 1.1.5.
|
5242 |
27-Dec-1994 |
bde |
Keep track of the devconf state.
|
5240 |
27-Dec-1994 |
dg |
Fixed two security holes in the pcmmap() function.
Submitted by: Bruce Evans
|
5237 |
26-Dec-1994 |
ats |
Add a patch that someone on the net has used to run on his IBM Thinkpad. Sorry, lost the name and mail of the original author. The whole patch is ifdefed, so it should not disturb someone else in the moment.
|
5162 |
18-Dec-1994 |
joerg |
Initialize syscons also in cases where it ain't the system's console (i.e., there's a comconsole).
|
5160 |
18-Dec-1994 |
joerg |
Move the code providing the equivalent of ICRNL for console input from the device driver(s) to cons.c.
|
5003 |
06-Dec-1994 |
sos |
Changed the behavior of KDMKTONE to comply with svr4, default to old behavior if no argument present.
|
4968 |
04-Dec-1994 |
joerg |
Here is a minor patch for FreeBSD 2.0R to allow it to recognize 2.88MB floppy drives. All it does is set the type to 1.44MB if it finds the 2.88MB drive.
Submitted by: Andrew Gillham <gillham@andrews.edu>
|
4894 |
01-Dec-1994 |
ache |
Change wakeup to endtsleep, because wakeup don't produce timeout state, cause infinite wakeups loop in ttywait
|
4874 |
30-Nov-1994 |
jkh |
Reverse the meaning of previous change. Now floppy tape support is *disabled* unless you specifically request otherwise. Poul wanted it this way, and I guess I'm not going to argue though it may seem counter-intuitive. We can always change it back, later.
|
4861 |
29-Nov-1994 |
jkh |
Experimental change to floppy driver to NOT probe the floppy tape if flags & 0x1. Somebody should build a kernel with this and see if the floppy-tape damaged people can turn it off properly with userconfig. I can't reproduce the original problem here.
|
4757 |
21-Nov-1994 |
ache |
Fix wrong size check for scroll forward/backward ('S'/'T')
|
4756 |
21-Nov-1994 |
ache |
Attempt to fix scroll forward/ scroll backward bug bringed by vi, 'S' and 'T' use count 1 in fillw() instead of count == n.
|
4685 |
19-Nov-1994 |
ache |
More intelligent BackTab fix using BTAB special key (unused before)
|
4684 |
19-Nov-1994 |
ache |
Fix all keymaps to bring BackTab to life.
|
4618 |
18-Nov-1994 |
phk |
Extended the SEEKWAIT and RECALWAIT somewhat to avoid annoying messages.
|
4573 |
17-Nov-1994 |
sos |
Added support for the MicroSoft Natural keyboard Add support for ws_xpixel & ws_ypixel in winsize. Submitted by: Natural support suggested by Kaleb Keithley (kaleb@x.org)
|
4396 |
12-Nov-1994 |
ache |
Revision 1.6 fix was lost: don't write 0 to RTC_DIAG
|
4341 |
10-Nov-1994 |
ache |
Use adjkerntz into inittodr too (for APM stuff)
|
4261 |
08-Nov-1994 |
ache |
Change "fdx: Floppy not writeable" to less confusing "fdx: write protected". Not writeable maybe means bad, etc.
|
4260 |
08-Nov-1994 |
jkh |
From: Lars Fredriksen <fredriks@mcs.com>
Here is a patch to fd.c that will check to make sure the floppy is not writeprotected when you try to open the device RW. Submitted by: lars
|
4186 |
06-Nov-1994 |
bde |
The style in my patch011 is inconsistent and out of date. It should have been changed _before_ committing the patch.
|
4185 |
06-Nov-1994 |
bde |
Work around microtime() enabling interrupts.
|
4180 |
05-Nov-1994 |
bde |
Maintain a new variable `timer0_overflow_threshold' so that microtime() doesn't have to calculate it every call.
Rename `timer0_prescale' to `timer0_prescaler_count' and maintain it correctly. Previously we lost a few 8253 cycles for every "prescaled" clock interrupt, and the lossage grows rapidly at 16 KHz. Now we only lose a few cycles for every standard clock interrupt.
Rename `*_divisor' to `*_max_count'.
Do the calculation of TIMER_DIV(rate) only once instead of 3 times each time the rate is changed.
Don't allow preposterously large interrupt rates. Bug fixes elsewhere should allow the system to survive rates that saturate the system, however.
Clean up declarations.
Include <machine/clock.h> to check our own declarations.
|
4114 |
03-Nov-1994 |
ache |
Fix for 'pstat -t' works on vtys Submitted by: jhay@mikom.csir.co.za
|
4088 |
02-Nov-1994 |
jkh |
Back out Joerg's latest commit. Sorry, Joerg, but this breaks the install floppies now. I'm not sure why, but things hang when it gets to the `changing root to fd0c' part. Without your latest commit, everything works fine. Maybe you can figure out what you broke after ALPHA! :)
|
4063 |
01-Nov-1994 |
bde |
Only log errors every second (instead of every 5-10 msec) and check for errors at a lower ipl. clist starvation problems can cause hundreds of tty buffer overflows per second and logging them all amplified the problems. This problem was less serious in 1.1.5.
Avoid a race in the check for starting a new block of output. com_events was sometimes messed up and siopoll() looped endlessly. This bug was introduced in 2.0.
Clean up previous 2 commits. Rename sio_registerdev() to sioregisterdev() to match the (bad) surrounding naming conventions. There should be a generic_registerdev().
|
4011 |
30-Oct-1994 |
joerg |
Several minor fixes to the floppy driver:
. avoid resetting the FDC every time the last motor is going off; instead, give it a 60-second period for possible later reactivation. This prevents us from needing to recalibrate the FDC too often, but still allows for an ``automagic error recovery', just in case the controller is absolutely stuck. (Simply wait for 60 seconds, and try it again.)
. made the floppy head settle time after a seek a constant that might be overridden by a config option. (Well, actually the divisor of the settle time). Pepople often reported problems with their floppies, so i need a simply mechanism that allows them to play with that value. (I personally cannot find any problem on *my* drives.)
. implement the FD_DEBUG ioctl command, in case the driver is compiled with DEBUG turned on.
. removed a bogus parameter from a printf; the remaining warnings from gcc -Wall seem to be warnings about the %b format gcc cannot understand
. rearrange Garett's code to fit better in the existing structure of #define/type/function ordering.
. make everything fit into 79 columns again.
|
3940 |
27-Oct-1994 |
jkh |
Julian Elischer's disklabel fixes.
|
3925 |
27-Oct-1994 |
phk |
The other half of patch011, read Numlck state from bios.
|
3917 |
26-Oct-1994 |
bde |
Fix initialization of video_mode_ptr. It only worked if the segments in the far pointers are multiples of 4K (as is normal when the video BIOS is at seg 0xc000). Disallow mode switching if the pointer is bad.
Use a new pa_to_va() macro for all BIOS and video addresses in syscons.
|
3867 |
25-Oct-1994 |
se |
BEWARE: Interface change of register_intr() !
Changed the fifth parameter to register_intr() from u_int mask into u_int *maskptr in preparation for new features (shared interrupts and removable devices, eg. for PCMCIA).
|
3834 |
24-Oct-1994 |
wollman |
Fixed cut&paste error.
Submitted by: davidg
|
3816 |
23-Oct-1994 |
wollman |
Finished device configuration database work for all ISA devices (except `ze') and all SCSI devices (except that it's not done quite the way I want). New information added includes:
- A text description of the device - A ``state''---unknown, unconfigured, idle, or busy - A generic parent device (with support in the m.i. code) - An interrupt mask type field (which will hopefully go away) so that . ``doconfig'' can be written
This requires a new version of the `lsdev' program as well (next commit).
|
3755 |
21-Oct-1994 |
joerg |
Checking for timeout at several critical calls to ``out_fdc()'' now, so i hope i've finally removed all the occasions where the driver got stuck when there's no floppy in the drive. Also attemmpting to omit the error mesage for ``recalib failed'' for the first time, since people tend to be confused about this.
|
3730 |
20-Oct-1994 |
phk |
A missing bit from Peter Dufaults patches, as best I could guess...
|
3728 |
20-Oct-1994 |
phk |
Peter Dufaults comconsole changes.
Submitted by: Peter Dufault
|
3725 |
19-Oct-1994 |
bde |
Clean up previous commit.
|
3713 |
19-Oct-1994 |
wollman |
Add support for devconf to a large number of device drivers, and do the right thing in dev_goawayall() when kdc_goaway is null.
|
3705 |
19-Oct-1994 |
wollman |
isa.c isa_device.h: declare & define {e,}isa_{in,ex}ternalize(). fd.c: register devices and implement disk stats. wd.c: fix disk stats and call isa_externalize() as appropriate.
|
3680 |
18-Oct-1994 |
ache |
Remove color_display, GIO_COLOR now exists
|
3671 |
17-Oct-1994 |
sos |
Added more SCO compat ioctl's.
|
3670 |
17-Oct-1994 |
phk |
isa_device.h: Added flag for sensitive HW. ed# seems to break if anything else has been probed. This feature could go away again, if we can curb the problem another way.
if_ed.c, syscons.c: Set the above flag. ed# because it needs it, syscons because it looks stupid to "detect" the display you have already filled up with text :-)
bt742a.c: Check bt_cmd() return-val during probe, thus failing on adaptec's. Also silenced various printf's during the probe.
isa.c: Probe devices with the above flag set before the rest. Reduce the number of "conflict" messages per device to one.
*** Please test the GENERIC-kernel now, if nobody can make it fail, GENERICAH and GENERICBT has a finite and short life-expectancy... ***
|
3662 |
17-Oct-1994 |
ache |
Initialize color_display as undefined, cosmetique
|
3629 |
15-Oct-1994 |
ache |
Add color_display variable for CPU_COLORDISP sysctl.
|
3620 |
15-Oct-1994 |
ache |
Prevent modem hanging forever on close with CTS off: use 1min timeout to wakeup ttywait
|
3548 |
12-Oct-1994 |
bde |
Work around FIFO bug in SMC UARTS.
Fix endless loop in siopoll() for an event on a tty with no tty struct. Don't generate unwanted interrupts in the serial console driver. These bugs probably don't matter unless the tty struct is dynamically allocated.
Support polled mode. To use it, leave out the irq and the vector in the config file. It only causes extra overhead for open polled ports. The maximum usable speed is approximately 1000 bps for a 16450 and 15000 bps for a 16550.
Other cosmetic changes.
|
3490 |
10-Oct-1994 |
phk |
Cosmetics. Silence gcc -Wall. Much more to do here :-(
|
3366 |
04-Oct-1994 |
ache |
Add disable_rtc_set variable to block resettodr() call, needed for adjkerntz -i, per Bruce suggestion
|
3355 |
04-Oct-1994 |
ache |
RTC_CENTURY usage ifdefed out by USE_RTC_CENTURY compile option, pointed by Bruce
|
3324 |
03-Oct-1994 |
ache |
Fix 'cursor-disappearce-after-switching-screen-from-X' bug
|
3310 |
02-Oct-1994 |
phk |
Ripped out APM-hooks. Not ready for prime time yet.
|
3300 |
02-Oct-1994 |
ache |
Make fat cursor as early as possible, per Bruce suggestion
|
3258 |
01-Oct-1994 |
dg |
Laptop Advanced Power Management support by HOSOKAWA Tatsumi.
Submitted by: HOSOKAWA Tatsumi
|
3201 |
29-Sep-1994 |
ache |
Fix broken FAT_CURSOR support, don't set cursor shape on VGA
|
3186 |
29-Sep-1994 |
sos |
Changed header slightly.
|
3185 |
29-Sep-1994 |
sos |
Updated pcaudio.c to latest from 1.1.5.1 Enabled timer reprogramming in clock.c (this could use more work).
Obtained from: FreeBSD-1.1.5.1
|
3141 |
27-Sep-1994 |
ache |
Bug fixed: cursor shaping in mode swithching produce wrong results for non-fat cursors, cursor_start goes beyond font size.
|
3139 |
27-Sep-1994 |
ache |
Refuse text mode switching when proper font not loaded
|
3105 |
25-Sep-1994 |
phk |
An ifdef almost hit where it was supposed to go. Joerg owes me a good German beer I think...
|
3096 |
25-Sep-1994 |
joerg |
Copied over the transfer speed definitions from sys/i386/isa/fdreg.h. This is needed for having the fdformat program no longer searching non-public include paths. Protect the definitions in fdreg.h against double inclusion.
|
3085 |
25-Sep-1994 |
phk |
Moved the ft.c from 1.1.5.1 over. It works on my Conner thingie. Got rid of a ton of unused vars at the same time.
|
3063 |
25-Sep-1994 |
ache |
1)Back out my previous change: only 8x16 font grabbing available, more work required to grab all fonts 2)Make standard VGA font as default, make HARDFONTS an option (load iso8859 fonts instead) 3)Check fonts_loaded for all restore (copy_font...palette) sequences.
|
3057 |
24-Sep-1994 |
ache |
SAVE all fonts, if NO_HARDFONTS defined, not only 8x16
|
2954 |
21-Sep-1994 |
dg |
#if 0'd evil dynamic fifo trigger level adjustment; it just bit me and a couple of other people again.
|
2953 |
21-Sep-1994 |
dg |
From 1.1.5:
>date: 1994/05/27 01:09:16; author: ache; state: Exp; lines: +3 -3 >Russian keymap: Ctrl-Alt-Del with NumLock on fixed
|
2932 |
20-Sep-1994 |
bde |
Don't lose the RTC interrupt in resettodr().
|
2913 |
20-Sep-1994 |
ache |
resettodr() implemented, inittodr() fixed Submitted by: me & chris@gnome.co.uk
|
2873 |
18-Sep-1994 |
bde |
Remove some unnecessary #includes.
Restore the simple leap year calculation as a macro and document it so that it doesn't become complicated again. The simple version works for all leap years covered by 32-bit time_t's. The complicated version doesn't work for all leap years covered by 64-bit time_t's since among other reasons, the solar system is not stable for long enough.
Fix declarations.
Nuke spinwait().
|
2858 |
18-Sep-1994 |
wollman |
Redo Kernel NTP PLL support, kernel side.
This code is mostly taken from the 1.1 port (which was in turn taken from Dave Mills's kern.tar.Z example). A few significant differences:
1) ntp_gettime() is now a MIB variable rather than a system call. A few fiddles are done in libc to make it behave the same.
2) mono_time does not participate in the PLL adjustments.
3) A new interface has been defined (in <machine/clock.h>) for doing possibly machine-dependent things around the time of the clock update. This is used in Pentium kernels to disable interrupts, set `time', and reset the CPU cycle counter as quickly as possible to avoid jitter in microtime(). Measurements show an apparent resolution of a bit more than 8.14usec, which is reasonable given system-call overhead.
|
2841 |
17-Sep-1994 |
joerg |
Fixed the problem where the floppy has incorrectly failed probing when the drive had been left on a cylinder > 67 after kernel boot. The most common case for this is booting a kernel that is located on the inner cylinders of a floppy.
Also removed all occurences of spinwait(), replaced by DELAY. Nuked a return line saying nothing, this might make Bruce happy 8^)
Submitted by: partially by Bruce Evans
|
2838 |
17-Sep-1994 |
dg |
Updated driver to the 1.1.5 version:
date: 1994/05/22 12:35:38; author: joerg; state: Exp; lines: +6 -6 First round of floppy changes. Try making `fd' more robust.
New features: . ioctl command for setting the drive type (density etc.); restricted to the super-user . ioctl for getting/seting `drive options'; currently only option is FDOPT_NORETRY: inhibit the usual retries; used when verifying a newly formatted track
Fixes: . function prototypes . made all internal functions `static' . cleaned up & corrected .h files . restructured, to make the chaotic function sequence more rational . compiled with -Wall, and cleared all warnings . introduced a mirror for the (write-only) `digital output register', to avoid the current kludge . device probing completed by seeking/recalibrating, and looking for track 0 being found . holding the controller down in reset state while it is idle (and thus saving allot of headaches) . make requests fail that are not a multiple of the (physical) sector size . removed the fixed physical sector size (512 bytes), allowing for any size the controller could handle (128/256/512/1024 bytes) . replaced some silly messages . fixed the TRACE* macro usage, debugging reports should be complete now again (debugging output is HUGE! though) . removed fd_timeout for SEEK command; seeks are always reported by the controller to succeed, since the `success' only refers to the controller's idea of success - there is no hardware line to tell about the seek end (other than the `track 0' line) . catch SENSEI's that report about a `terminated due to READY changed' status - could happen after a controller reset . converted ``hz / <something>'' divide operations to divisors that are powers of two, so gcc can optimize them into shifts . write/format operations are checked against a write-protected medium now *prior* starting the operation . error reports of `invalid command' and `wrong cylinder' will cause shortcuts in the retrier() now . fixed a bug in the retrier() causing bogus block numbers to be reported . fdformat() does care for errors now
Known Bugs: . no attempts have been made (yet) to improve the performance . sometimes, bogus ``seek/recalib failed'' messages are logged; this is still a bug in the driver, but it's not harmful since it's usually caught by the retrier()
Reviewed by: Submitted by: Obtained from:
|
2783 |
15-Sep-1994 |
sos |
Added support for many more videomodes, including graphic modes up til 320x200 256col VGA. This is nessesary for the iBCS stuff to work right. (And we get the benefit of more video modes). Uses the videocard BIOS to optain mode tables. Added a "green" saver, switches off the syncs for "green" monitors.
Reviewed by: Submitted by: Obtained from:
|
2770 |
14-Sep-1994 |
ache |
1. adjkerntz variable added for preparation to resettodr() implementation 2. Leap year calculations fixed
|
2704 |
13-Sep-1994 |
phk |
Digicom Systems Inc, makes "softmodems". What this means is simply that you download the microcode to the DSP everytime you power on your system. They provide a dos-program to do so, but no other support. This commit adds code to the sio-driver, which implement an ioctl, which will down-load the micro-code.
To get this functionality, you must define DSI_SOFT_MODEM.
The program to actually employ the ioctl is not included, but the entire source looks like this:
#include <sys/ioctl.h> #include <stdio.h>
main() { unsigned char buffer[100000]; int i;
read(0,buffer,100000); if((i = ioctl(1,TIOCDSIMICROCODE,buffer)) < 0) perror("ioctl"); return i; }
And you use it like this: smload < data144b.dsi > /dev/ttyid3
You need to copy the *.DSI files from the dos-media provide with your modem. You can see what is downloaded by issuing the ATI3 command to the modem. DSI's scheme for what code you can run on your modem isn't violated by this.
Poul-Henning Kamp phk@freefall.cdrom.com
|
2397 |
29-Aug-1994 |
ache |
Use RAW_PART=2 to trick diskerr
|
2320 |
27-Aug-1994 |
dg |
1) Changed ddb into a option rather than a pseudo-device (use options DDB in your kernel config now). 2) Added ps ddb function from 1.1.5. Cleaned it up a bit and moved into its own file. 3) Added \r handing in db_printf. 4) Added missing memory usage stats to statclock(). 5) Added dummy function to pseudo_set so it will be emitted if there are no other pseudo declarations.
|
2272 |
25-Aug-1994 |
bde |
Updated to final 1.1.5 version (revision 1.56).
Merged changes from 2.0 version (revisions 1.46-1.50) by hand.
Finished conversion to clists: removed flush of tty output buffer in comflush() (most writes were truncated to 256 bytes) and restored bypass of ttyinput() in siopoll().
Finished conversion to 2.0 types - more void *'s, less caddr_t's, less casts, no Dev_t's.
Only these things are seriously broken now compared with 1.1.5: waiting for output complete is impossible so ttywait() can deadlock; sioclose() isn't called enough so sioopen() sometimes returns EBUSY unnecessarily; input flow control is not implemented.
|
2234 |
23-Aug-1994 |
paul |
Ran ft.c through ident. Added a missing #ifdef INET wrapper in lpt.c
Main change: Removed the timeout_func_t casts from timeout calls and correctly defined the timeout routines to conform to the new format. lpt.c doesn't have this change.
Reviewed by: Submitted by:
|
2142 |
20-Aug-1994 |
dg |
1) cleaned up after Garrett - fixed more redundant declarations, changed use of timeout_t -> timeout_func_t in aha1542 and aha1742 drivers. 2) fix a bug in the portalfs that was uncovered by better prototyping - specifically, the time must be converted from timeval to timespec before storing in va_atime. 3) fixed/added some miscellaneous prototypes
|
2112 |
18-Aug-1994 |
wollman |
Fix up some sloppy coding practices:
- Delete redundant declarations. - Add -Wredundant-declarations to Makefile.i386 so they don't come back. - Delete sloppy COMMON-style declarations of uninitialized data in header files. - Add a few prototypes. - Clean up warnings resulting from the above.
NB: ioconf.c will still generate a redundant-declaration warning, which is unavoidable unless somebody volunteers to make `config' smarter.
|
2103 |
18-Aug-1994 |
dg |
Bruce Evans' dynamic interrupt support.
/usr/src/sys/i386/isa/clock.c: o Garrett's statclock changes. o Wire xxxintr, not Vclk. o Wire using register_intr(), not setidt().
/usr/src/sys/i386/isa/icu.s: o Garrett's statclock changes. o Removed unused variable high_imask. o Fake int 8 for rtc as well as int 0 for clk. Required for kernel profiling with statclock, harmless otherwise.
/usr/src/sys/i386/isa/isa.c: o Allow isdp->id_irq and other things in *isdp to be changed by probes. Changing interrupts later requires direct calls to register_intr() and unregister_intr() and more care. ALLOW_CONFLICT_* is brought over from 1.1.5, except ALLOW_CONFLICT_IRQ is not supported. IRQ conflict checking is delayed until after probing so that drivers can change the IRQ to a free one; real conflicts require more cooperation between drivers to handle. o Too many details to list. o This file requires splitting and a lot more work.
/usr/src/sys/i386/isa/isa_device.h: o Declare more things more completely.
/usr/src/sys/i386/isa/sio.c: o Prepare to register interrupt handlers as fast.
/usr/src/sys/i386/isa/vector.s: o Generate entry code for 16 fast interrupt handlers and 16 normal interrupt handlers. Changed some constants to variables: # $unit is now intr_unit[intr]. Type is int. Someday it should be a cookie suitable for the handler (e.g., a struct com_s for sio). # $handler is now intr_handler[intr]. # intrcnt_actv[id_num] is now *intr_countp[intr]. The indirection is required to get a contiguous range of counters for vmstat and so that the drivers depend more in the driver than on the interrupt number (drivers could take turns using an interrupt and the counts would remain correct). There is a separate counter for each device and for each stray interrupt. In 1.1.5, stray interrupt 7 clobbers the count for device 7 or something worse if there is no device 7 :-(. # mask is now intr_mask[intr] (was already indirect). o Entry points are now _XintrI and _XfastintrI (I = intr = 0-15), not _VdevU (U = unit). o Removed BUILD_VECTORS stuff. There's a trace of it left for the string table for vmstat but config now generates the string in one piece because nothing more is required. o Removed old handling of stray interrupts and older comments about it.
Submitted by: Bruce Evans
|
2092 |
17-Aug-1994 |
sos |
Oops, changed order of include lines...
Reviewed by: Submitted by:
|
2087 |
17-Aug-1994 |
sos |
Updated to latest 1.1.5.1+ version
Reviewed by: Submitted by:
|
2078 |
15-Aug-1994 |
wollman |
Add option KBD_RESET_FAIL_OK so that GCC 2.6 doesn't break my console.
|
2074 |
15-Aug-1994 |
wollman |
Enable use of the RTC chip for the statistical clock. While this does not provide the full accuracy of a randomized statistical clock, it does provide greater accuracy than the previous method, while not significantly increasing overhead. It also provides profiling support at 1024 Hz.
You must re-compile config before making a new kernel, or you will end up with unresolved symbols.
Reviewed uy: Bruce evans said it worked for him.
|
2056 |
13-Aug-1994 |
wollman |
Change all #includes to follow the current Berkeley style. Some of these ``changes'' are actually not changes at all, but CVS sometimes has trouble telling the difference.
This also includes support for second-directory compiles. This is not quite complete yet, as `config' doesn't yet do the right thing. You can still make it work trivially, however, by doing the following:
rm /sys/compile mkdir /usr/obj/sys/compile ln -s M-. /sys/compile cd /sys/i386/conf config MYKERNEL cd ../../compile/MYKERNEL ln -s /sys @ rm machine ln -s @/i386/include machine make depend make
|
2017 |
11-Aug-1994 |
wollman |
For Pentium machines, use a faster version of microtime with 8 usec resolution (can probably be improved somewhat). Other machines take a three-instruction hit if I586_CPU is defined, none otherwise.
|
2014 |
10-Aug-1994 |
wollman |
Tell Pentium users their CPU speed. (More changes to make use of this to come later.)
|
1808 |
01-Aug-1994 |
dg |
Fixed a bug that was introduced in the conversion from 1.1.5 to 2.0.
|
1568 |
26-May-1994 |
rgrimes |
Since we have removed com.c and renamed comreg.h to sioreg.h I need to fix sio.c to #include sioreg.h.
|
1549 |
25-May-1994 |
rgrimes |
The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.
Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman
|
1442 |
02-May-1994 |
sos |
Update the reprogram timer stuff, now the frequency of timer 0 can only be changed at the "right" times. Accuracy should be assured.
|
1417 |
26-Apr-1994 |
sos |
Updated swedish keymap.
|
1416 |
26-Apr-1994 |
sos |
Fixed missing bounds check in scroll up/down sequence, that could cause a panic (and did).
|
1407 |
23-Apr-1994 |
wollman |
Define new option, INACCURATE_MICROTIME_IS_OK. When this is defined, the NTP kernel PLL is disabled, and acquire_timer0() is enabled, thus opening the door for microtime() (and hence gettimeofday()) to return bogus timestamps. This option is necessary for the `pca' driver to work, but is implemented to underscore the fact that accurate timekeeping and the `pca' driver are incompatible at present. If someone writes a version of microtime() that works when the `pca' driver is being used, this can get junked.
|
1403 |
23-Apr-1994 |
dg |
Added support for the 16 port Boca via a flag to specify that there is no master port.
|
1394 |
21-Apr-1994 |
sos |
Changed timer usage to new functions in clock.c
|
1390 |
21-Apr-1994 |
sos |
New support for sharing the timers acquire_timer / release_timer
Pulled in timer related functions from isa.c
|
1379 |
20-Apr-1994 |
dg |
Bug fixes and performance improvements from John Dyson and myself:
1) check va before clearing the page clean flag. Not doing so was causing the vnode pager error 5 messages when paging from NFS. (pmap.c) 2) put back interrupt protection in idle_loop. Bruce didn't think it was necessary, John insists that it is (and I agree). (swtch.s) 3) various improvements to the clustering code (vm_machdep.c). It's now enabled/used by default. 4) bad disk blocks are now handled properly when doing clustered IOs. (wd.c, vm_machdep.c) 5) bogus bad block handling fixed in wd.c. 6) algorithm improvements to the pageout/pagescan daemons. It's amazing how well 4MB machines work now.
|
1353 |
12-Apr-1994 |
ache |
Patch from S0ren, 80x50 font trashed after switching from X console
|
1345 |
07-Apr-1994 |
ache |
Fix arguments of CONS_GETINFO
|
1326 |
03-Apr-1994 |
ache |
Add declaration missing from previous bde's version
|
1325 |
03-Apr-1994 |
ache |
CHANGES from Bruce: --- This list of changes is in approximately chronological order (oldest first).
o Many cosmetic changes - renamed comintr1 -> siointr1, moved things around and fixed whitespace. o Reduced SLIP latency (FRAME_END hack) from 20-30 ms to 16 ms at 115200 bps (you won't notice the average 10 ms improvement on slow lines). ppp seems to use only counted transfers so there's no similar hack available. It's too hard for the driver to know the count. o Temporary #ifdefs for new and old interrupt handling (OLD_INTERRUPT_HANDLING decided by setsofttty() not being externally defined. o Don't test for the IIR_NOPEND bit being set - test for the non-fifo part of the iir equalling it like the docs say to. States with other IIR_NOPEND set in combination with the other iir bits are undefined. The docs may be stupid - the old test would not have broken when the fifo bits were introduced. o Noted more problems with DTR wait. o Rewrote console stuff. Still some initialization and state preservation problems. Same for kgdb stuff. The driver doesn't do anything about the console close bug. It needs to be fixed entirely in i386/cons.c. I like chmr's version where the the console driver revectors the device open and close routines. o Temporary (?) #ifdefs for references to tty buffers. o Noted further things to do in (2 comments about 3 places) for phk's change to not touch RTS unless it is being used for flow control. o Temporary #ifdefs for timestamp handling. It needs fixing. The microtime() call breaks the first rule of writing fast interrupt handlers: NO calls to functions that might do slow and bad things. microtime() enables interrupts. This turns out to be only moderately harmful. Also, I want the timestamp copy outside of the normal interrupt handler. o Don't init com->tp early for the !DONT_MALLOC_TTYS case - both sides are NULL. o Worry about com->tp == NULL in siopoll. I don't see how you survived the (incc <= 0 || !(tp->state & TS_ISOPEN)) test. Perhaps early sttys or comcontrols set up the tp's for _all_ the ports before this code is reached.
|
1321 |
02-Apr-1994 |
dg |
New interrupt code from Bruce Evans. In additional to Bruce's attached list of changes, I've made the following additional changes:
1) i386/include/ipl.h renamed to spl.h as the name conflicts with the file of the same name in i386/isa/ipl.h. 2) changed all use of *mask (i.e. netmask, biomask, ttymask, etc) to *_imask (net_imask, etc). 3) changed vestige of splnet use in if_is to splimp. 4) got rid of "impmask" completely (Bruce had gotten rid of netmask), and are now using net_imask instead. 5) dozens of minor cruft to glue in Bruce's changes.
These require changes I made to config(8) as well, and thus it must be rebuilt.
-DG
from Bruce Evans:
sio: o No diff is supplied. Remove the define of setsofttty(). I hope that is enough.
*.s: o i386/isa/debug.h no longer exists. The event counters became too much trouble to maintain. All function call entry and exception entry counters can be recovered by using profiling kernel (the new profiling supports all entry points; however, it is too slow to leave enabled all the time; it also). Only BDBTRAP() from debug.h is now used. That is moved to exception.s. It might be worth preserving SHOW_BITS() and calling it from _mcount() (if enabled). o T_ASTFLT is now only set just before calling trap(). o All exception handlers set SWI_AST_MASK in cpl as soon as possible after entry and arrange for _doreti to restore it atomically with exiting. It is not possible to set it atomically with entering the kernel, so it must be checked against the user mode bits in the trap frame before committing to using it. There is no place to store the old value of cpl for syscalls or traps, so there are some complications restoring it.
Profiling stuff (mostly in *.s): o Changes to kern/subr_mcount.c, gcc and gprof are not supplied yet. o All interesting labels `foo' are renamed `_foo' and all uninteresting labels `_bar' are renamed `bar'. A small change to gprof allows ignoring labels not starting with underscores. o MCOUNT_LABEL() is to provide names for counters for times spent in exception handlers. o FAKE_MCOUNT() is a version of MCOUNT() suitable for exception handlers. Its arg is the pc where the exception occurred. The new mcount() pretends that this was a call from that pc to a suitable MCOUNT_LABEL(). o MEXITCOUNT is to turn off any timer started by MCOUNT().
/usr/src/sys/i386/i386/exception.s: o The non-BDB BPTTRAP() macros were doing a sti even when interrupts were disabled when the trap occurred. The sti (fixed) sti is actually a no-op unless you have my changes to machdep.c that make the debugger trap gates interrupt gates, but fixing that would make the ifdefs messier. ddb seems to be unharmed by both interrupts always disabled and always enabled (I had the branch in the fix back to front for some time :-(). o There is no known pushal bug. o tf_err can be left as garbage for syscalls.
/usr/src/sys/i386/i386/locore.s: o Fix and update BDE_DEBUGGER support. o ENTRY(btext) before initialization was dangerous. o Warm boot shot was longer than intended.
/usr/src/sys/i386/i386/machdep.c: o DON'T APPLY ALL OF THIS DIFF. It's what I'm using, but may require other changes. Use the following: o Remove aston() and setsoftclock(). Maybe use the following: o No netisr.h. o Spelling fix. o Delay to read the Rebooting message. o Fix for vm system unmapping a reduced area of memory after bounds_check_with_label() reduces the size of a physical i/o for a partition boundary. A similar fix is required in kern_physio.c. o Correct use of __CONCAT. It never worked here for non- ANSI cpp's. Is it time to drop support for non-ANSI? o gdt_segs init. 0xffffffffUL is bogus because ssd_limit is not 32 bits. The replacement may have the same value :-), but is more natural. o physmem was one page too low. Confusing variable names. Don't use the following: o Better numbers of buffers. Each 8K page requires up to 16 buffer headers. On my system, this results in 5576 buffers containing [up to] 2854912 bytes of memory. The usual allocation of about 384 buffers only holds 192K of disk if you use it on an fs with a block size of 512. o gdt changes for bdb. o *TGT -> *IDT changes for bdb. o #ifdefed changes for bdb.
/usr/src/sys/i386/i386/microtime.s: o Use the correct asm macros. I think asm.h was copied from Mach just for microtime and isn't used now. It certainly doesn't belong in <sys>. Various macros are also duplicated in sys/i386/boot.h and libc/i386/*.h. o Don't switch to and from the IRR; it is guaranteed to be selected (default after ICU init and explicitly selected in isa.c too, and never changed until the old microtime clobbered it).
/usr/src/sys/i386/i386/support.s: o Non-essential changes (none related to spls or profiling). o Removed slow loads of %gs again. The LDT support may require not relying on %gs, but loading it is not the way to fix it! Some places (copyin ...) forgot to load it. Loading it clobbers the user %gs. trap() still loads it after certain types of faults so that fuword() etc can rely on it without loading it explicitly. Exception handlers don't restore it. If we want to preserve the user %gs, then the fastest method is to not touch it except for context switches. Comparing with VM_MAXUSER_ADDRESS and branching takes only 2 or 4 cycles on a 486, while loading %gs takes 9 cycles and using it takes another. o Fixed a signed branch to unsigned.
/usr/src/sys/i386/i386/swtch.s: o Move spl0() outside of idle loop. o Remove cli/sti from idle loop. sw1 does a cli, and in the unlikely event of an interrupt occurring and whichqs becoming zero, sw1 will just jump back to _idle. o There's no spl0() function in asm any more, so use splz(). o swtch() doesn't need to be superaligned, at least with the new mcounting. o Fixed a signed branch to unsigned. o Removed astoff().
/usr/src/sys/i386/i386/trap.c: o The decentralized extern decls were inconsistent, of course. o Fixed typo MATH_EMULTATE in comments. */ o Removed unused variables. o Old netmask is now impmask; print it instead. Perhaps we should print some of the new masks. o BTW, trap() should not print anything for normal debugger traps.
/usr/src/sys/i386/include/asmacros.h: o DON'T APPLY ALL OF THIS DIFF. Just use some of the null macros as necessary.
/usr/src/sys/i386/include/cpu.h: o CLKF_BASEPRI() changes since cpl == SWI_AST_MASK is now normal while the kernel is running. o Don't use var++ to set boolean variables. It fails after a mere 4G times :-) and is slower than storing a constant on [3-4]86s.
/usr/src/sys/i386/include/cpufunc.h: o DON'T APPLY ALL OF THIS DIFF. You need mainly the include of <machine/ipl.h>. Unfortunately, <machine/ipl.h> is needed by almost everything for the inlines.
/usr/src/sys/i386/include/ipl.h: o New file. Defines spl inlines and SWI macros and declares most variables related to hard and soft interrupt masks.
/usr/src/sys/i386/isa/icu.h: o Moved definitions to <machine/ipl.h>
/usr/src/sys/i386/isa/icu.s: o Software interrupts (SWIs) and delayed hardware interrupts (HWIs) are now handled uniformally, and dispatching them from splx() is more like dispatching them from _doreti. The dispatcher is essentially *(handler[ffs(ipending & ~cpl)](). o More care (not quite enough) is taken to avoid unbounded nesting of interrupts. o The interface to softclock() is changed so that a trap frame is not required. o Fast interrupt handlers are now handled more uniformally. Configuration is still too early (new handlers would require bits in <machine/ipl.h> and functions to vector.s). o splnnn() and splx() are no longer here; they are inline functions (could be macros for other compilers). splz() is the nontrivial part of the old splx().
/usr/src/sys/i386/isa/ipl.h o New file. Supposed to have only bus-dependent stuff. Perhaps the h/w masks should be declared here.
/usr/src/sys/i386/isa/isa.c: o DON'T APPLY ALL OF THIS DIFF. You need only things involving *mask and *MASK and comments about them. netmask is now a pure software mask. It works like the softclock mask.
/usr/src/sys/i386/isa/vector.s: o Reorganize AUTO_EOI* macros. o Option FAST_INTR_HANDLER_USERS_ES for people who don't trust fastintr handlers. o fastintr handlers need to metamorphose into ordinary interrupt handlers if their SWI bit has become set. Previously, sio had unintended latency for handling output completions and input of SLIP framing characters because this was not done.
/usr/src/sys/net/netisr.h: o The machine-dependent stuff is now imported from <machine/ipl.h>.
/usr/src/sys/sys/systm.h o DON'T APPLY ALL OF THIS DIFF. You need mainly the different splx() prototype. The spl*() prototypes are duplicated as inlines in <machine/ipl.h> but they need to be duplicated here in case there are no inlines. I sent systm.h and cpufunc.h to Garrett. We agree that spl0 should be replaced by splnone and not the other way around like I've done.
/usr/src/sys/kern/kern_clock.c o splsoftclock() now lowers cpl so the direct call to softclock() works as intended. o softclock() interface changed to avoid passing the whole frame (some machines may need another change for profile_tick()). o profiling renamed _profiling to avoid ANSI namespace pollution. (I had to improve the mcount() interface and may as well fix it.) The GUPROF variant doesn't actually reference profiling here, but the 'U' in GUPROF should mean to select the microtimer mcount() and not change the interface.
|
1320 |
01-Apr-1994 |
ache |
Replace CAPS led with ALTGR led for ALTGR mode (soft) keyboards, currently affects only russian keyboard.
|
1319 |
01-Apr-1994 |
ache |
Change got_status/modem_status assignment per Bruce suggestion, because inb clears modem status port.
|
1311 |
26-Mar-1994 |
ache |
1) Better fix for false carrier detect on bidir port 2) ttyclose moved after comhardclose, because clears t_state 3) slpx(s) moved after l_open to prevent undetected carrier down
|
1309 |
25-Mar-1994 |
ache |
Fix false carrier detection on incoming bidir port.
|
1299 |
23-Mar-1994 |
ache |
1) Change dtrwait 300 to 3 * hz (to be more kosher) 2) Protect sioclose by spltty()
|
1295 |
21-Mar-1994 |
ache |
Add siostop to sioclose, because ttyflush called from wrong places removed now.
|
1292 |
21-Mar-1994 |
ache |
Increase default DTR wait time up to 3 secs. Also hardw. specs says 2.5 secs is enough, many modems needs at least 3 secs.
|
1287 |
21-Mar-1994 |
dg |
previous optimization from John wasn't quite ready for primetime.
|
1286 |
20-Mar-1994 |
dg |
Two fixes from John Dyson to fix hangs and panics when using ctrl-T:
1) tty.c: gather all the info about the processes before calling ttyprintf (which may block). 2) syscons.c: handle asynchronous output properly (data structures may be corrupted otherwise).
|
1273 |
18-Mar-1994 |
ache |
Remove ttyfree from sioclose Example: Application use port cua01 Getty open ttyd1 (allocates rawq,outq,etc) and waits while application done Application quits, sioclose issued, ttyfree issued (getty calls revoke) Getty awakes and goes to panic into initrb (NULL rawq)
|
1261 |
14-Mar-1994 |
ache |
Checking l_close in unneeded (one of my previous fixes), so back it out.
|
1254 |
10-Mar-1994 |
ache |
Don't call ttyclose twice into sioclose and move ttyclose before comhardclose
|
1251 |
08-Mar-1994 |
ache |
First open: now HUPCL set only in bidir case for callin lines (this prevents set HUPCL on mouse) comhardclose: in addition to HUPCL case now DTR dropped for bidir case if line was active in and no carrier present now. (this prevents DTR sleep on mouse)
|
1250 |
08-Mar-1994 |
nate |
From: Jim Babb <babb@sedhps01.mdc.com> Subject: Re: Bugs with floppy drives Date: Tue, 8 Mar 94 9:11:54 CST
The transfer speed was only set in the retry after error, not when switching drives.
|
1249 |
08-Mar-1994 |
dg |
Modified pccnprobe to not set cn_tp = CONSOLE_TTY if __FreeBSD__ is defined. This code should probably be yanked out.
|
1242 |
06-Mar-1994 |
guido |
Removed a #warning that I left here.
|
1235 |
02-Mar-1994 |
guido |
Ttys structures are now allocated dynamically via ttymalloc/ttyfree. This inetrface should be used from now on. pseudo device pty xx still keeps its meaning: a maximum of xx ptys is allowed. A ringbuffer is now 2040 bytes long, per Garrett Wollman's request. The changes are inspired by the way NetBSD did it (thanks for that!), though I made it slihghtly different, including the interface so at least 75% of the allocated space is deallocated when the tty is closed. Note further that it is easy to modify the ringbuffer length runtime. This will have to wait untill some later date...
-Guido
|
1233 |
02-Mar-1994 |
ache |
360 DD entry speed fixed to 250KBPS
|
1231 |
02-Mar-1994 |
alm |
floppy tape support shouldn't interfere with floppy disk driver on systems with no floppy tape drive (patch from Jim Babb).
|
1215 |
26-Feb-1994 |
phk |
RTS shouldn't be touched unless CS_RTS_IFLOW is set.
|
1210 |
24-Feb-1994 |
phk |
TIOCTIMESTAMP capability. The port in question must be configured with "vector siointrts". Thus only a compare is added for the other ports.
|
1161 |
14-Feb-1994 |
nate |
From: Jim Babb <babb@sedhps01.mdc.com> Date: Mon, 14 Feb 94 15:57:14 CST
This adds a copyright to the fdc.h file and fixes a bug in re-tries during writes on a heavily loaded system.
|
1122 |
07-Feb-1994 |
alm |
Tentative fdc patches...
|
1121 |
07-Feb-1994 |
ache |
Change all siointr (expect in Vsio, of course) to comintr1 This saves two commands per each direct comintr1 call, allows some strict check in siointr and also fix bug with suspended output on multiport cards
|
1110 |
07-Feb-1994 |
alm |
Add floppy tape driver - fd => fdc
|
1105 |
07-Feb-1994 |
dg |
From: Chris Wiener <cwiener@CRLABS.COM>
When the keyboard is probed, the LED's blink quickly and "Keyboard reset failed" is printed on the console. The init routine keeps trying endlessly with the same behavior as above.
I got the latest -current sup sources (06-Feb-94 12:00 GMT) to work using the old syscons.c. The following patch makes the new syscons work:
|
1104 |
06-Feb-1994 |
dg |
At the suggestion of Bruce Evans, don't zero RTC diag register. Doing so was causing problems for some machines.
|
1098 |
06-Feb-1994 |
ache |
1) Proper fix for suspended output in multiport case 2) IIR_NOPEND is really *one* bit, we don't need to check whole MASK
|
1089 |
04-Feb-1994 |
chmr |
Make the screen savers runtime switchable. Everybody wants a different default saver, and the size increase in the kernel is minimal ( < 2.5K ).
|
1077 |
02-Feb-1994 |
ache |
Make BLANK_SAVER default to stop best saver war.
|
1076 |
02-Feb-1994 |
ache |
Fix error in multiport part: while input char not entered, output was suspended
|
1071 |
01-Feb-1994 |
nate |
Moved paren in sgetc to where it belongs. (My fault, I must have wiped it out when I applied the patch to get the new features by hand)
|
1070 |
01-Feb-1994 |
rich |
Add missing arg to Debugger() call. Add missing close paren in sgetc() definition.
|
1069 |
01-Feb-1994 |
ache |
Make old SNAKE_SAVER code compile with new syscons changes.
|
1067 |
01-Feb-1994 |
ache |
1) Restore removed SNAKE_SAVER (Nate, WHY you do it?) 2) Make SNAKE_SAVER like default, if no saver specified in "options" 3) Remove #ifdef STAR_SAVER before line /* make screensaver happy */ this code needed in any case.
|
1065 |
01-Feb-1994 |
ache |
Russian keymap is broken after last commit (fixed) Nate, please, be more careful next time.
|
1063 |
01-Feb-1994 |
ache |
Comment #define STAR_SAVER, it is configuration "options"
|
1061 |
01-Feb-1994 |
nate |
From: sos@login.dkuug.dk (S|ren Schmidt) Subject: syscons-1.3 Date: Sat, 29 Jan 94 23:33:50 MET
But here is the (hopefully) final syscons-1.3....
....
I've changed sgetc so it works as the pccons parallel (it now uses a scgetc internally).
[ There were a couple changes that Bruce Evans sent me that were applied to this version along with some changes that S'ren didn't incorporate into the final version. There will be only minor changes if anything from this version to his final release. ]
|
1054 |
31-Jan-1994 |
ache |
Remove CALLOUTMASK, if non-bidir case.
|
1050 |
31-Jan-1994 |
ache |
1) Set ipending back to 4, because (16 + 4) bit not in netmask or impmask.
2) Fixes from Bruce: o Changed name of schedsoftcom() to setsofttty() to match setsoftclock() o Bool_t isn't used. o tx_fifo_size is 1 for chips without fifos, 16 for 16550's, to help to output more efficiently for 16550's (LSR_TXRDY means that the fifo is empty, not that it has space for one char). o Changed name of softsio1() to siopoll() and merged compoll() into siopoll(). o The probe forgot to clear com_mcr after it failed. This is harmful for 4 single serial ports on 2 interrupts. It makes partial misconfigurations worse. o Don't bother initializing static variables that are 0 (bidir stuff). o Only initialize t_oflag to TTYDEF_OFLAG if unit == COMCONSOLE, not if COMCONSOLE is defined. o Don't call siointr() from comparam() if there is no output in progress. For the call from sioopen(), there's no output in progress, and siointr() often saw silo overflows for stale input because it was called before sioopen() discarded the input. o Let ttselect() do the work for select(), so that the fixes for ttselect() don't have to be duplicated in zillions of drivers.
|
1047 |
31-Jan-1994 |
dg |
Patch from Brian Smith (modified a little by me) to allow kernel config file override to disable fifo on 16550s:
I bought a board with two 16550's, but one of those ports has a mouse on it. The sio driver always enables the fifo, which is a bad thing for mice and X. The mouse is jerky and hard to use. The simple thing is be to treat one of the ports as a non-fifo'ed UART, and I use the flags option in my config file.
So, my config file has: device sio0 at isa? port "IO_COM1" tty irq 4 flags 0x2 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
(patch deleted)
|
1009 |
24-Jan-1994 |
ache |
Add Ctrl-Altr-Esc DBG key to RUKEYMAP (russian keymap)
|
984 |
18-Jan-1994 |
nate |
Changed the default 'reboot' routine from cpu_reset() to shutdown_nice().
If you want to disable the reboot feature, then re-define the keymap to not have a RBT call.
|
983 |
18-Jan-1994 |
nate |
Changed the default syscons keymap to have <CTL-ALT-ESC> enter the debugger and <CTL-ALT-DEL> call the reboot command.
|
974 |
14-Jan-1994 |
dg |
"New" VM system from John Dyson & myself. For a run-down of the major changes, see the log of any effected file in the sys/vm directory (swap_pager.c for instance).
|
967 |
11-Jan-1994 |
ache |
From ache: Choose older MULTIPORT version, because lastest bde version not worked. Don't force HUPCL for bidirectional case. From bde: Use bit (1 << (16 + 4)) in schedsoftcom() to avoid clash with non-serial h/w on IRQ4. Allow FIFO_TRIGGER in config. Clear com->mcr_image when clearing mcr for init of 4port. The usual value MCR_IENABLE should have broken 4ports unless something happened to clear it later. Turn off interrupts as well as DTR after an error waiting for carrier (bidir dialin case). Drain fifo more carefully. Don't hang up if debugging. Rearrange siointr() -> siointr1() for multiport case for speed, lower latency and clarity. Use suser() to check perms. Provide missing splx() after failed perms checks. c_ispeed == 0 means c_ispeed = c_ospeed (POSIX). Set parameters (except speed) for c_ospeed == 0 as well as hanging up. Better initialization for console (fifo stuff...). Misc. cleanups. Fix dead hang if modem power is off.
|
924 |
03-Jan-1994 |
dg |
Convert syscall to trapframe. Based on work done by John Brezak.
|
922 |
02-Jan-1994 |
ache |
Temporary plug CLOCAL security hole, while sticky bits yet not implemented. Only for bidirectional case.
|
890 |
21-Dec-1993 |
ache |
Use separate fields for format GAP and read/write GAP. Restore usage of read/write GAP.
|
889 |
21-Dec-1993 |
rich |
Don't cast 2nd arg to fillw() per David's comments. The cast breaks cursor positioning.
|
887 |
21-Dec-1993 |
rich |
cast arg 2 of fillw() calls to type caddr_t as in pccons. add "manual escape to debugger" arg in call to Debugger(). cast 1st arg to untimeout() to type timeout_func_t as done for timeout().
|
879 |
19-Dec-1993 |
wollman |
Make everything compile with -Wtraditional. Make it easier to distribute a binary link-kit. Make all non-optional options (pagers, procfs) standard, and update LINT to reflect new symtab requirements.
NB: -Wtraditional will henceforth be forgotten. This editing pass was primarily intended to detect any constructions where the old code might have been relying on traditional C semantics or syntax. These were all fixed, and the result of fixing some of them means that -Wall is now a realistic possibility within a few weeks.
|
878 |
19-Dec-1993 |
ache |
Media table reorganization. Entries for 800 and 820 fixed. From vak@kiae.su: incorporate Joerg Wunsch formatting code correct handle timeouted operations fixed entry for 720 media
|
876 |
18-Dec-1993 |
ache |
Fix tsleep "waitvt" wait data from vak@kiae.su
|
874 |
18-Dec-1993 |
ache |
Reorganization of format table. GAP values changed suitable for possible format code addition. Read/write GAP always 2 now. Interleave parameter added for possible format code addition. Many logical formats added. 720K physical drive added. Problems: still can't read 720..820 media in 1.44 drive.
|
873 |
18-Dec-1993 |
ache |
RTCFDT_720K (physical drive 720K) added.
|
870 |
16-Dec-1993 |
ache |
Added following formats (derived from MSDOS fdformat): 800K in HD 5.25in (maximum for DD diskettes) 1.44M in HD 5.25in (for easy distributions) 1.46M in HD 5.25in (maximum for 5.25) Some cosmetique changes.
|
865 |
16-Dec-1993 |
ache |
Change default dtrwait value to 2 seconds. Change C-style into static initializer per Bruce request.
|
863 |
16-Dec-1993 |
ache |
No more partition bits in floppy minor. Now minor looks like UU DDDDDD, UU - unit, DDDDDD - density. If density == 0, CMOS-detect format assumed. Fix attach code for correct work with unknown CMOS floppy types. Trick diskerr to handle new minor. 1.722M floppy in 1.44M drive popular format added.
|
858 |
13-Dec-1993 |
dg |
set output flags to ttydefault if COMCONSOLE is defined.
|
855 |
13-Dec-1993 |
ache |
Add more strictly size check into Fdopen to eliminate possible end-user errors. Now: 1) on physical 1.2 can open logical 1.2, 720, 360H 2) on physical 1.44 can open logical 1.44, 720 3) on physical 360 can open logical 360 All other variants refused. C-style improved in this check, multiply if's changed to switch.
|
854 |
12-Dec-1993 |
ache |
Add 360K floppy support. More work to add 720K floppy support. Restore good old dependance of device and floppy type. Now: fd?a == 1.44 fd?b == 1.2 fd?c == 720 fd?d == 360 in HD fd?e == 360 Add more strict size check in Fdopen, not it refuse: 1) Attempt to open any type expect fd?e, if you have only 360K drive. 2) Attempt to open fd?a if you have only 1.2 drive.
|
851 |
12-Dec-1993 |
ache |
Add popular 720k floppy in HD drive floppy type. Restore check for NUMTYPES in Fdopen.
|
841 |
11-Dec-1993 |
ache |
Force HUPCL in bidirectional port open. This don't allow it hangs forever.
|
834 |
09-Dec-1993 |
ache |
1) Fix error with port recognition, speed initialization code added to probe. 2) Force CLOCAL=on for outgoing ports and CLOCAL=off for incoming ports into open in bidirectional case. 3) Add DELAY after writing to com_ier for fifo drain into probe.
|
830 |
04-Dec-1993 |
ats |
Fixed the error that a Fdopen succeeds without a found fd controller in the system.
|
826 |
03-Dec-1993 |
alm |
Reset fdc during probe.
From: <dec@lazarus.nrtc.northrop.com> Changes between EPSILON and RELEASE of FreeBSD have again caused the kernel to not see my floppy disk drives. I don't know what happened, 'cause I don't see any changes to fd.c, but here is an old fix that I have applied to the probe routine which will solve the problem (at least for me). Since this is a rather brute-force solution - I understand if you want to ignore it...
[Upgrading to pre-Beta FreeBSD caused this on my system. -AM]
|
802 |
27-Nov-1993 |
rich |
Fix conflicting prototypes and return values.
|
798 |
25-Nov-1993 |
wollman |
Make the LINT kernel compile with -W -Wreturn-type -Wcomment -Werror, and add same (sans -Werror) to Makefile for future compilations.
|
794 |
23-Nov-1993 |
chmr |
Changed return(-1) in switch_scr to return(EINVAL), because -1 is ERESTART on return from a system call.
|
779 |
17-Nov-1993 |
ache |
Fix attach message, make separate line for it (old version assumed that line is probe line)
|
764 |
14-Nov-1993 |
ache |
New sio driver from Bruce.
|
733 |
08-Nov-1993 |
ache |
Add missing read flush code to siostop
|
720 |
07-Nov-1993 |
wollman |
Made all header files idempotent and moved incorrect common data from headers into a related source file. Also fixed a bug in ed_probe() where it was possible to fall off the end of the function
|
700 |
04-Nov-1993 |
ache |
DST offset calculation removed, it is wrong in any case.
|
699 |
04-Nov-1993 |
ache |
Russian keymap (RUKEYMAP) changes: New syscons keys added: NEXT, DBG, RBT AltGr Shift removed from right Alt Shift state on -,+ keys exchanged
|
686 |
31-Oct-1993 |
jkh |
Now that STAR_SAVER and SNAKE_SAVER are kernel options, add code to make sure that bad things don't happen if both are (incorrectly) defined at once.
|
685 |
31-Oct-1993 |
jkh |
Fixed bug where syscons.c wouldn't compile if DDB was enabled. Removed FAT_CURSOR and STAR_SAVER as compiled in defaults - these should be kernel options!
|
679 |
28-Oct-1993 |
rgrimes |
Put back the $Id$ strings
|
677 |
28-Oct-1993 |
jkh |
This is syscons version 1.1
|
627 |
18-Oct-1993 |
jkh |
Patch from stever@csuohio.edu (Steve Ratliff) to make FAT_CURSOR work on HDA/CGA displays.
|
625 |
16-Oct-1993 |
rgrimes |
Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some minor cleanup. Added $Id$ to files that did not have any version info, etc
|
619 |
16-Oct-1993 |
rgrimes |
Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some minor cleanup. Added $Id$ to files that did not have any version info, etc
|
598 |
14-Oct-1993 |
dg |
Disassociate DTR and RTS. They were coupled together and shouldn't have been. This was necessary to work around problems with some equipment that don't respond favorably to having these both dropped simultaneously.
|
583 |
12-Oct-1993 |
rgrimes |
Use KERNBASE for locating stuff in kernel virtual memory, not hard coded constants.
|
580 |
12-Oct-1993 |
dg |
incorporated patches from Marc Frajola (marc@escargot.rain.com) to unset TS_TBLOCK when the RBLEN falls below the low water mark.
|
558 |
08-Oct-1993 |
jkh |
Removed FAT_CURSOR as default since it breaks certain CGA displays and it is better to conform to the lowest common denominator. Those wishing to retain it can always use options FAT_CURSOR in their config files.
|
542 |
04-Oct-1993 |
jkh |
Latest changs for XFree86 2.0
|
530 |
30-Sep-1993 |
rgrimes |
Change #include <sys/console.h> to <machine/console.h>, file will be moved shortly
|
516 |
29-Sep-1993 |
jkh |
From: "Andrew A. Chernov, Black Mage" <ache@astral.msk.su> AltGr Lock code for zero repeat count ommited, so AltGr Lock works only one time and never again :-)
|
514 |
28-Sep-1993 |
jkh |
Version number support for XFree86
|
512 |
28-Sep-1993 |
jkh |
Change to sio for recognising the last serial port on a multiport card correctly.
Updated syscons to 0.2e, added features for upcoming XFree86 2.0, fixed crashbug.
|
499 |
23-Sep-1993 |
rgrimes |
>From: bde@kralizec.zeta.org.au (Bruce Evans) Date: Thu, 16 Sep 93 01:35:10 +1000 Julian writes:
>In fact DEVIDLE and FINDWORK ended up being basically equivalent. >the bit I wonder about, is the returning of 0.. What (other than >another request from somewhere else in the kernel) is going to start >work on the next item on the queue?
I think removing FINDWORK would make things clearer.
Nothing much is going to start work on the next item. However, it is pointless to continue processing the queue for the same unready drive. Aborting all reads and trying harder to perform all writes would be better. Julian writes.
> no, actually it should be: > fdt = fd_data[FDUNIT(minor(dev))].ft;
Fixed. From: bde@kralizec.zeta.org.au (Bruce Evans) Date: Thu, 16 Sep 93 22:56:01 +1000 The fd driver reported the wrong cylinder/head/sector numbers after an error (ST3 is only valid after a sense-drive command), and didn't report fs block numbers (diskerr was not used).
There was an old problem with writes to block fd devices. Try this:
1. write protect floppy in fd0. 2. tar cf /dev/fd0a /dev/null. Repeat a few times. Later writes tend to terminate earlier. 3. un-write protect floppy. 4. repeat step 2. The writes tend to return 0, 2048, 4096, ... and then succeed.
This was caused by a bug in vfs__bios.c. (The bug is fixed in NetBSD's vfs_bio.c.) fd.c sets bp->b_resid to nonzero after an error. vfs__bios.c was not initializing bp->b_resid. This causes some writes to terminate early (e.g., writes to block devices; see spec_write()).
Related funnies:
1. Nothing tries to write the residual bytes. 2. The wd driver sets bp->b_resid to 0 after an error, so there's no way anything else could write the residual bytes. 3. I use the block fd device for tar because the raw device seemed to have more bugs long ago, and because it ought to be able to handle buffering more transparently (I don't want to have to know the device size). But spec_write() always uses the size BLKDEV_IOSIZE == 2048 which is too small. For disks it should use the size of one track (rounded down to meet the next track boundary or the i/o size). Here it would help if the DIOCGPART ioctl worked. But DIOCGPART is not implemented for floppies, and the disk size is ignored except for partitions of type FS_BSDFFS.
Bruce
|
471 |
15-Sep-1993 |
rgrimes |
Removed $Log$ section and patch kit headers. And here is the full message for Bruces changes:
>From: bde@kralizec.zeta.org.au (Bruce Evans) >Subject: fixes for fd driver
I think I've fixed some bugs in the 0.2.4 fd driver.
1. The main cause of hangs was that there was no timeout for seeks. So attempting i/o with no floppy in the drive hung iff a seek was required.
2. Opens of unattached drives were allowed. The kernel usually paniced soon after due to a bad pointer.
3. Some timeout functions ran at splclock() instead of splbio(). This may not have mattered.
4. The state machine was left in a funny state after a timeout.
5. Some function headers were new-style.
6. I picked up some code posted the other day to implement label ioctls. Now `disklabel fd0' works. See a comment for how to modify conf.c.
|
470 |
15-Sep-1993 |
rgrimes |
>From: paul@u.tvt.se (Paul Pries) >Subject: Bad bug in kbdtables.h [FreeBSD]
I found a bug in /sys/i386/isa/kbdtables.h which contain the different keyboard layouts for syscons. This regards all tables exept the Danish and US. When compiling the kernel with any other keymapping than Danish or none at all (US), you get an error that 'key_map' is undefined. This is because there is a typo in the name of the struct containing the tables, keymap intead of key_map.
|
464 |
14-Sep-1993 |
jkh |
Bruce's multifarious patches for the floppy driver (not well tested, but since what we have is crap as it is, it can't do much worse!).
|
431 |
10-Sep-1993 |
rgrimes |
From guido@gvr.win.tue.nl Wed Sep 8 13:34:16 1993 That is because TIOCMGET was broken. Yes...this is known for some time and no, we (Bruce and me) never posted it. Why? Simply because we choose to post fixes when we fixed most of the bugs.
Anyway..now that the slip problems are coming, here is a fix for correct TIOCMGET behaviour.
-Guido Note: this should be tested first (Rich?). Tested by rgrimes
|
419 |
08-Sep-1993 |
jkh |
Soren's latest syscons changes.
|
414 |
08-Sep-1993 |
rgrimes |
From michaele@vice.ico.tek.com Wed Sep 8 09:50:45 1993 Subject: Re: Some small errors in GAMMA 4. Move printf("\n"); at line 491 in "/sys/i386/isa/sio.c" to after COM_MULTIPORT block at line 512. From rgrimes: The above would cause the word (multiport) with out a new line to appear after the uart type message if you had COM_MULTIPORT enabled.
|
352 |
28-Aug-1993 |
rgrimes |
Replaced the return (1)'s with return (IO_KBDSIZE) in the probe code so that the printfs during the probing prints the range instead of just the start address.
|
341 |
28-Aug-1993 |
rgrimes |
xxxprobe now returns the correct number of I/O registers used so that the probe output during boot gives the I/O range instead of just the starting address
|
308 |
20-Aug-1993 |
rgrimes |
Added from: line to reference the pccons.c derivation of this code, otherwise the BSD copyright would be very bad to have on this file.
|
285 |
12-Aug-1993 |
rgrimes |
Fixed poor timeout code in out_fdc. The timeout counter was not being reinitialized between while loops. Added comments about what was going on in the out_fdc routine.
out_fdc now returns if the direction bit is not set in time instead of trying to wait for MRQ to get cleared.
|
210 |
30-Jul-1993 |
jkh |
Updated syscons to 0.2b - please test this! It won't be in the ALPHA release, but it's still worth testing.
|
192 |
26-Jul-1993 |
jkh |
Added necessary files for syscons (may move font include later, but for now it's easier to leave there since I don't feel like breaking anything).
|
166 |
20-Jul-1993 |
jkh |
Applied Andrew's patch to fix loop-on-logout problem.
|
162 |
20-Jul-1993 |
jkh |
Removed check for interrupting board before interrupts were enabled. This should result in more AST clones getting seen.
|
142 |
18-Jul-1993 |
rgrimes |
Fixed sccs id to be From:\n com.c xxxx. The sccs id was changed by the patch kit and it should not have been.
|
126 |
15-Jul-1993 |
dg |
Modified attach printf's so that the output is compatible with the "new" way of doing things. There still remain several drivers that need to be updated. Also added a compile-time option to pccons to switch the control and caps-lock keys (REVERSE_CAPS_CTRL) - added for my personal sanity.
|
5 |
12-Jun-1993 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r4, which included commits to RCS files with non-trunk default branches.
|