summaryrefslogtreecommitdiffstats
path: root/sys/isa
Commit message (Collapse)AuthorAgeFilesLines
* Last major round (Unless Bruce thinks of somthing :-) of malloc changes.phk1997-10-121-2/+2
| | | | | | | | 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
* Back out my LALT -> META change until we figure out a way to make itjkh1997-10-121-2/+2
| | | | work sympathetically with the function keys.
* Change default keymap (I left all the international ones alone) sojkh1997-10-101-2/+2
| | | | | that LALT is META by default. This will make the emacs users happy. Approved by: sos
* Add a new keyboard mode K_CODE. Returns a single byte for each keysos1997-10-012-13/+25
| | | | | | | | 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.
* tiny update of ESC sequence parser.itojun1997-09-261-5/+23
| | | | | | | - 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)
* Fix a call to timeout that wasn't properly saving it's callout handle.gibbs1997-09-231-2/+2
| | | | Submitted by: durian@plutotech.com
* aha1542.c aic6360.c cy.c fd.c ft.cgibbs1997-09-212-18/+25
| | | | | | | | | | | | 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.
* teach sio how to attach to isa PnP cards. This is mainly for use withjmg1997-09-191-13/+122
| | | | | | | | | | | | | | | | 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)
* Enable the FIFO on enhanced floppy controllers. This reduces thetegge1997-09-173-3/+60
| | | | | | | | 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)
* Make FDC_DEBUG a supported option.joerg1997-09-161-10/+21
| | | | | | | 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.
* Update select -> poll in drivers.peter1997-09-142-4/+4
|
* Add a new compile option SC_HISTORY_SIZE to specify the history bufferyokota1997-09-042-14/+19
| | | | | | | | | | | | 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
* General cleanup of the sub-system locking macros.fsmp1997-09-012-104/+52
| | | | | | | | 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>
* Removed unused #includes.bde1997-09-011-8/+1
|
* Created a private simple_lock to control accesses to com data structsfsmp1997-08-311-51/+76
| | | | | | | | | | 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.
* Another round of lock pushdown.fsmp1997-08-302-51/+64
| | | | | | | | | 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>
* Removed unused misplaced definition of TIMER_FREQ.bde1997-08-251-3/+2
| | | | Use less-magic numbers in the definition of HISTORY_SIZE.
* #include <machine/limits.h> explicitly in the few places that it is required.bde1997-08-211-1/+2
|
* Fixed a warning about undefined isa_irq_pending(). (UP kernel only)fsmp1997-08-211-4/+4
|
* Moved the COM_LOCK and COM_UNLOCK macros to machine/param.h.fsmp1997-08-211-10/+1
|
* Made PEND_INTS default.fsmp1997-08-211-34/+6
| | | | | | | | | | 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.
* Preperation for moving cpl into critical region access.fsmp1997-08-201-1/+48
| | | | | | | | 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).
* Minor ppc_data structure tweak.msmith1997-08-161-3/+3
| | | | Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
* ISA Parallel-Port Bus chipset driver.msmith1997-08-142-0/+901
| | | | Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
* Fix the checks for screenborder for the mousepointer.sos1997-08-091-14/+12
|
* Yeah I'm back hacking syscons !!sos1997-08-081-6/+56
| | | | | | | 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.
* Added include of intr_machdep.h to eliminate compiler warning for APIC_IO.fsmp1997-08-041-2/+3
|
* Fix a brino in my last commit.phk1997-07-261-2/+5
| | | | Noticed by: smp
* clock.c:fsmp1997-07-261-54/+23
| | | | | | | | | | | | | | - 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.
* Add option for compiling in a 8x16 font.phk1997-07-251-5/+14
|
* Last commit didn't take, operator error???fsmp1997-07-221-29/+6
|
* Developed a new strategy for handling the 8254/8259/APIC issue.fsmp1997-07-201-30/+64
|
* Minor cleanup.fsmp1997-07-201-11/+8
|
* Removed unused #includes.bde1997-07-206-20/+5
|
* Added #code to support define APIC_PIN0_TIMER.fsmp1997-07-191-8/+24
| | | | | This code ALWAYS runs the 8254 timer thru the 8259 ICU. It depricates the usage of "options SMP_TIMER_NC" in the config file.
* SMP or APIC_IO:fsmp1997-07-191-8/+23
| | | | | | - Increased NIDT to 256. - Moved IPI vectors up above the linux compat vector. - Removed runtime setup of RTC vector.
* Made the printing of the APIC INTs depend on bootverbose.fsmp1997-07-181-6/+8
|
* Add some support for the 16650 type UARTS.dyson1997-07-171-8/+47
|
* Screen saver related fixes.yokota1997-07-152-37/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* scgetc() referred to `spcl' in different ways when a key is pressedyokota1997-07-141-2/+2
| | | | | | | | | | | | 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
* Cleanup old stop_cpus/restart_cpus() cruft.fsmp1997-07-131-6/+22
| | | | | new code for handling mixed-mode 8259/APIC programming without 'ExtInt' new code to control other CPUs: stop_cpus()/restart_cpus()/_Xstopcpu
* Don't allow CONS_HISTORY ioctl to alter history pointersbrian1997-07-091-1/+3
| | | | | while in "scroll mode" (return EBUSY). Suggested by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
* Remove useless comparison.brian1997-07-081-3/+2
| | | | Suggested by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
* YAMF2.2: Handle indirect results of "kbdcontrol -h X"brian1997-07-071-4/+7
| | | | where X < 25.
* Fixes annoying behavior and a bug regarding the destructiveyokota1997-06-301-28/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* dev->id_flags --> flagsache1997-06-291-2/+2
| | | | (not compiles otherwise)
* A fix/work-around for ThinkPad 535.yokota1997-06-292-22/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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...)
* Modified to use merged/renamed functions:fsmp1997-06-251-34/+30
| | | | | - get_isa_apic_mask() -> isa_apic_mask() - get_isa_apic_irq() && get_eisa_apic_irq() -> isa_apic_pin()
* The syscons driver doesn't really check the presence of the displayyokota1997-06-221-67/+163
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bring back CONSPEED as a last-ditch default if you can't change the speedpst1997-06-042-4/+9
| | | | | | any other way. Requested by: dfr
OpenPOWER on IntegriCloud