Commit Graph

380 Commits

Author SHA1 Message Date
lukem
d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
mrg
c13e3a6693 use _KERNEL_OPT 2001-05-30 11:40:35 +00:00
ad
c6da2452c0 Put back /usr/include/dev/tc/sticreg.h. 2001-05-16 13:48:52 +00:00
bouyer
937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
thorpej
27253eea15 Use uvm_pageboot_alloc() rather than pmap_steal_memory(). 2001-04-22 16:44:41 +00:00
reinoud
1351706593 Fix a few race conditions ... the VSYNC update flag could be cleared
resulting in a blank screen when f.e. a setcursor ioctl was called
after the screenblanker had enabled the screen again ... the actual
switching on was then never performed at VSYNC.

A simple |= instead of = does the trick ... just leave the other bits
on please :)
2001-04-20 11:53:06 +00:00
jdolecek
745ab257dc Put back all header files defining ioctls 2001-04-11 19:07:36 +00:00
jdolecek
372e5956ef Only install headers which are actually used by our userland. This
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@
recently.

I HOPE to get the list right. The headers I left in are ones
used for MI tools and those whose usage I discovered by grep over tree sources.
Feel free to put needed includes back in if you encounter anything which
should not be removed from lists.
2001-04-11 07:42:31 +00:00
nathanw
a8c1e6280a Fix spelling errors in comments. 2001-04-09 16:10:06 +00:00
ad
571ef6d823 Make this work on alpha, and fix some other bogons. 2001-03-04 13:32:25 +00:00
nisimura
8e3f2f7c65 Change to exclude TC identification string PMAGD-AA because 8bpp can not
be handled with current implementation.  sfbplus.c should be capable of
doing the right things for multiple depths by ultilizing SFB+ design.
2001-02-27 02:11:36 +00:00
nisimura
ab8c4071cc Void-filling to honour SVIDEO ioctl call. 2001-02-19 09:11:11 +00:00
nisimura
b4ef15f3bc - paint underline on text honouring WSSCREEN_UNDERLINE.
- use accellerated painting for text cursor, should improve speed.
2001-01-19 05:43:43 +00:00
nisimura
1d8bb9f134 managed to make this useful enough for screen editor.
- video base register value brings different scanline starting address
  of framebuffer depending on VRAM chip column size.
many other issues left unsolved.
- text rendered in incorrect colours.
- acceleration codes should be reimplemented from scratch.
2001-01-17 06:48:09 +00:00
nisimura
f20b78bb5d Add a definition for PMAGD which should cover all (three?) variations of
it.  Left commented out until DECstation switchs to WSCONS.
2001-01-16 05:49:41 +00:00
nisimura
bd7039cbdb - relocate the code to place sprite cursor inside interrupt handlers
called on every virtical replace.
- efforts to make the code strucutures similar across TC framebuffers.
2001-01-16 05:32:16 +00:00
nisimura
f493d886c1 - make this more senseful 32bpp TC framebuffer. This is far less broken
than the preivous code.  It can show readable characters on screen.
  Tested only with 32bpp model of PMAGD opion card.  Need more work for 8bpp.
- 2D accelleration will be revamped to ultilize SFBplus features.
- there seems much mulfunctionness in 32bpp codes of /sys/dev/rasops/.
  Need to rectify every corners.
2001-01-16 05:06:02 +00:00
nisimura
9b47b68152 abandon an attempt to have 8bpp textop and 32bpp textop parallelly.
Pursuade a unified logic effective for both depths.
2001-01-15 09:45:30 +00:00
nisimura
452e3d1a2f fix a typo and rearrange a comment about SFB register aliasing effect. 2001-01-15 09:41:57 +00:00
nisimura
3a6d3e0771 use ri_devcmap[] values directly, instead of calling rasops_unpack_attr().
-
2001-01-15 09:37:42 +00:00
ad
1b4eef2721 - Make VDAC state per-board.
- Add an ioctl to reset the STIC.
- Add an ioctl to restore the screen contents from backing.
- Other tweaks.
2001-01-09 16:04:03 +00:00
mrg
d9a9b8d6d5 the tcds cards work in pmaxen. move tcds attachment to files.tc. leave asc
at tcds in files.alpha for now, and add a new `xasc at tcds' to files.pmax.
after pmax has moved fully to MI scsi (and `asc' is MI scsi), we should move
the device asc, etc., lines to files.tc.
2001-01-01 23:43:05 +00:00
ad
024d36d353 - Fix bugs, make this useful.
- Add ioctls to start and stop the co-processor (if present).
2000-12-22 13:30:32 +00:00
perseant
3475e639f3 Add register #defines similar to those in <dev/pci/tgareg.h>, referring to
a 32-bit sfb_reg_t, for easy comparison between tga and sfb Xservers.
2000-12-19 01:25:46 +00:00
ad
b5aee7bd4c Thinko. 2000-12-17 14:46:43 +00:00
ad
3b02b279aa Regen. 2000-12-17 13:56:19 +00:00
ad
d092cb0d0a Sync with PixelStamp drivers. 2000-12-17 13:56:05 +00:00
ad
553c5108d4 Add wscons drivers for the DEC PixelStamp graphics accelerators. 2000-12-17 13:52:03 +00:00
nisimura
2e93099aff Replace sfb_copycols() which can run better job in some degree.
It still fails on certain conditions, thus is left commented out.
copycols() is done by a generic routine which works correctly.
2000-11-25 11:43:42 +00:00
nisimura
b974ee7790 Add TC option card descriptions, which are commented out before NetBSD/pmax
yields local implementations to them.
2000-11-24 05:02:26 +00:00
nisimura
0661e6718b - fix an error in uninitialized variable reference.
- add a missing function argument declaration.
- minor comment adjustments.
2000-11-22 06:59:08 +00:00
nisimura
ce10334de9 Fix errors in color lookup table initialization. Glyph is rendered
in visible color now.
2000-11-21 07:42:02 +00:00
mhitch
d458239a94 When doing the cacheflush for MIPS1, adjust the length to account for
an unaligned buffer.  The last word of the buffer was not getting flushed
if the buffer was unaligned and fit in a single DMA segment.  Now dump(8)
works on both MIPS1 and MIPS3 DECstations.
2000-11-05 21:02:13 +00:00
mhitch
f5f7066fc8 When a read DMA transfer is interrupted by a disconnect on the IOASIC SCSI
and the buffer is not 8-byte aligned, it leaves a partial transfer in the
SDRx registers.  This could cause data corruption in dump(8) because the
read-ahead buffers are allocated on a non-aligned address.  When the read
DMA transfer is interrupted and the current DMA position is not aligned,
call the dma_end() routine to flush the SDRx register contents to the
buffer.
2000-11-02 21:00:04 +00:00
simonb
97e5badeae Line up columns in #define list. 2000-10-31 15:16:26 +00:00
nisimura
8a54846748 Fix errors in initializing the software copy of 256 entry colormap
stored in device softc.  rasops_cmap[] array is orginazed in 256
iteration of 3 byte long RBG triplet, which does not match with
struct wsdisplay_cmap design.
2000-10-27 07:24:04 +00:00
nisimura
ad74c7dbd6 - Put comment about wsevent structure counts 0 for the left most mouse
button with a bit coding improvement.
- signed char -> int to hold integer values.  Contributed 16 insn savings.
2000-10-19 10:27:04 +00:00
nisimura
8a526d9513 Remove sc_lance_dmam field from ioasic_softc structure. It was obsoluted
by the removal of ioasic_lance_dma_setup() made in if_le_ioasic.c 1.15.
2000-10-17 09:45:49 +00:00
nisimura
f3d4ccd750 Have consistent #if's for machine dependent clauses. 2000-10-17 09:27:22 +00:00
nisimura
1fd2521475 - efforts to merge TC Alpha and IOASIC DECstation, derived from Mattias
Drochner's work made in nisimura-pmax-wscons branch.  Still a little
  to do before useful for DECstation.  MI softintr required.
- allow wildcard matchs to have zstty/zskbd/zsms in default hardware
  configuration.
- abandon to check zs_ioasic_cnattach() return value; it doesn't fail.
- have zs_ioasic_cnattach() serial line parameters hardcoded inside, in
  symmetry with zs_ioasic_lk201_cnattach().
2000-10-17 08:55:43 +00:00
nisimura
ca7bd5f302 Make sure wsmouseopen() returns ENXIO when no VSXXX mouse is attached. 2000-10-14 08:51:51 +00:00
mhitch
af7ddd3659 Set up the physical addresses for DMAPTR/NEXTPTR before adjusting for
unaligned transfers and adjust the physical address to align the transfer.
If the buffer end just crossed the page boundary, the computation of the
NEXTPTR physical address resulted in using -1.  The cleanup at the end of
the DMA transfer would try to copy the residual data to physical address
0x1ffffffc.  This would silently corrupt data on the R3000 and usually
would hang the R4000.
2000-09-28 03:11:29 +00:00
nisimura
bf7a6e6857 Found glyph pixel order inverted on screen. 2000-09-13 02:11:14 +00:00
nisimura
c8321c45a7 Found glyph pixel order inverted on screen. 2000-09-12 09:45:48 +00:00
nisimura
59178ec7b4 Use dev/{rasops,wsfont} instead of awesome dev/rcons. Still much to do
before being useful.
2000-09-09 06:15:17 +00:00
nisimura
48ff19c98b u_char -> u_int for function argument and return of Zilog register
manipulation helper functions; no loss, no gain, for Alpha processor.
2000-09-09 06:08:42 +00:00
tsutsui
83f94dc417 Regen. 2000-07-20 07:11:28 +00:00
tsutsui
4af0fbdb1a Add PMAG-JA framebuffer. 2000-07-20 06:38:39 +00:00
thorpej
693ff4c94d PAGE_SIZE -> IOASIC_DMA_BLOCKSIZE in one last place. From Izumi Tsutsui. 2000-07-18 06:14:05 +00:00
thorpej
b91d520dc9 Back out previous. It is no longer needed, as both the Alpha
and DECstation IOASIC drivers clear the appropriate interrupts
in the dispatch routine.
2000-07-18 06:12:33 +00:00
thorpej
5e275d7012 Clear the DMA pointer reload interrupt bits in the IOASIC_INTR
register to prevent interrups from looping on the Alpha.

From Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>.
2000-07-17 17:43:16 +00:00
thorpej
8746b7c870 - Write the registers 7930 registers properly on the Alpha (it's
different than on the DECstation).
- Use IOASIC_DMA_BLOCKSIZE instead of PAGE_SIZE.

Should make this work on the Alpha.  From discussion with
Izumi Tsutsui, Gregory McGarry, and Chris Demetriou, and
much reading of EK-D3SYS-PM.
2000-07-17 04:37:27 +00:00
thorpej
887bebaa71 Define IOASIC_DMA_BLOCKSIZE (4096 bytes). 2000-07-17 02:18:17 +00:00
thorpej
8623daff6d G/c some unused (and incorrect, for our usage) definitions. 2000-07-17 02:17:13 +00:00
thorpej
95f72dd4aa Use the IOASIC_DMA_ADDR() macro now that it is fixed. 2000-07-17 01:29:02 +00:00
thorpej
cd6fa19644 Make sure to get the upper 5 bits of the page address mixed in
in IOASIC_DMA_ADDR(), as the le_ioasic attachment does.  Noted
by Gregory McGarry.
2000-07-17 01:28:16 +00:00
nisimura
4f051180a0 - Use PMAD-BA name for device match logic. It's not a real TURBOchannel
device and the id string is not found in option ROM string, but
  ULTRIX/OSF1 call it so anyway.
- Squash IOASIC DMA buffer allocation into device attach() sequence.
2000-07-11 04:10:25 +00:00
nisimura
30c1d4ba1c - Withdraw ZS_IOASIC_DMA conditional which has never been useful.
- Sanitize ZS register access.
2000-07-05 07:50:57 +00:00
nisimura
728e424e54 Repopulate 4 files, zs_ioasic.c and zs_ioasicvar.h from arch/alpha/tc,
zskbd.c and zsms.c from dev/dec/, respectively.  No functionality
change this time.
2000-07-05 02:48:50 +00:00
nisimura
87eac96162 Make sure to settle tcdsreg.h and tcdsvar.h in /usr/include/dev/tc/. 2000-07-04 02:31:21 +00:00
nisimura
1de4ec68b4 Repopulate TCDS dual channel SCSI adapter to MI dev/tc, squashing
internals for better layering between TCDS DMA ASIC and ASC SCSI
controller.
2000-07-04 02:22:08 +00:00
mrg
a14baa8257 remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-28 17:05:20 +00:00
mrg
2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
simonb
889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
gmcgarry
6ab5c3364c - add mmap support
- correct bug which wouldn't free allocated DMA segments
2000-06-12 22:40:20 +00:00
gmcgarry
c2a8e26e11 - remove conditional compilation on NAUDIO
- use preprocessor for constants
2000-06-05 23:02:04 +00:00
gmcgarry
a5156a5c97 Cleanup #if 0 cruft. 2000-06-04 22:21:09 +00:00
cgd
cffb580806 Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
2000-06-04 19:14:14 +00:00
gmcgarry
9ee45aaf3a Remove wbflush(). These are not necessary with the new IOASIC bus_space
framework.  From Tohru Nishimura.
2000-06-01 21:46:17 +00:00
cgd
e4c35df1c9 kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
2000-06-01 00:22:52 +00:00
gmcgarry
57e5e86ed1 Merge pmax and alpha ISDN register definitions. 2000-05-28 06:13:40 +00:00
augustss
621ef4d785 Add am7930 audio driver. 2000-05-02 06:43:05 +00:00
augustss
169ac5b3c1 Remove register declarations. 2000-03-30 12:41:09 +00:00
thorpej
fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
nisimura
f52c9620bc Place 34 by 80 console at the center of screen. 2000-03-16 05:50:57 +00:00
nisimura
0b765ee6f8 Retain rendering performance lossage by rasops, but suffering
flexibility in turn; this renderer is 2B stroke (less than 16 pixel
width) font only.  If 1B stroke (less than 8 pixel width) font is
ever supported, the font data should be converted into 2B stroke
during font initialization process.  'wsfont_realize()' is to be
proposed in order to have 'CPU and/or accelerator hardware friendly'
format to squeeze maxinum performance.
2000-03-16 05:48:28 +00:00
nisimura
220005d941 Eliminate unused sc_cookie field of struct ioasic_softc. 2000-03-15 03:07:44 +00:00
nisimura
65da099cb1 Unnecessary to enclose device driver body with #if NASC > 0. 2000-03-14 08:23:29 +00:00
nisimura
2eb68c00d2 Respect video console colour designation by configration file. 2000-03-14 08:04:06 +00:00
nisimura
80c0893a8b Switch to improved flexible video console text rasterizer provided by
rasops and wsfont.
2000-03-14 06:25:21 +00:00
mhitch
e65044e30d Get rid of hook for dk_establish() - pmax will now use device_register(). 2000-03-06 03:08:32 +00:00
mhitch
3b06f6f887 Fix boot device detection. Device probes are not done when adapters are
configured, but after all adapters have been configured.  When multiple
adapters are present, only the last configured adapter could be matched
to the boot device slot.  The adapter attach routines now check if that
adapter slot matches the boot device slot and saves the softc pointer
for that controller.  Then when the disks are configured, dk_establish()
matches the appropriate controller.
2000-03-04 05:43:51 +00:00
nisimura
3e02ded337 Improvement on SFB enabled copycol(); still yet under development,
it miserably fails on corner cases.
2000-02-18 06:51:51 +00:00
thorpej
29ae6dbe05 We're given a K1SEG address already. 2000-02-11 01:32:42 +00:00
nisimura
42e4e9fd0c Add the missing piece of previous mod. 2000-02-08 04:35:03 +00:00
nisimura
c6641d91a8 Merge IOASIC register definitions. 2000-02-03 08:13:44 +00:00
nisimura
8e27abd255 Use bus_space_{write,read} for IOASIC register access. 2000-02-03 05:16:30 +00:00
simonb
a5f53c3682 Don't use magic number for lance buffer address. 2000-01-10 13:32:02 +00:00
ad
d1a62749c4 s/NVRCSR/NVR_CSR/ 2000-01-07 10:43:13 +00:00
enami
cadfd97e07 Replace WSFONT_L2R/R2L with WSDISPLAY_FONTORDER_L2R/R2L. 2000-01-07 02:57:17 +00:00
drochner
f6ee10996d regen 2000-01-05 12:15:00 +00:00
drochner
28828c88e8 add Kubota Denali 2000-01-05 12:14:33 +00:00
ad
ea17a0d147 Remove part of a bogus comment and put it in a more appropiate spot. 1999-12-16 15:07:00 +00:00
ad
f607dfe4dd - Change prefix for Bt459 register defs to BT459_IREG to indicate that
these are indirectly accessed registers.
- Add defs for directly accessed registers to bt459reg.h.
1999-12-15 15:09:36 +00:00
nisimura
fa5e192541 One small mod. escaped from the last commit. 1999-12-08 09:41:24 +00:00
drochner
0893832078 update for changed struct wsdisplay_accessops:show_screen signature.
no functional changes
1999-12-06 19:25:56 +00:00
drochner
c3026431e3 some cleanup:
-don't set capabilities at compile time
-since our accelerated putchar() doesn't underline, don't claim so
-remove bogus character range check - fonts are not limited to ASCII
-use rasops_unpack_attr() instead of relying on rasops internals
1999-12-04 14:01:56 +00:00
nisimura
54c58da2e5 The first order approximation of PMAGD SFB+ framebuffer. Proven not
working with 32bit PMAGD TURBOchannel option card (I got rainbow
colour virtical stripes on screen).
1999-12-03 09:50:53 +00:00
mhitch
901e4b0219 Fix IOASIC DMA alignment problems. Buffers not aligned on doubleword (8
byte) boundaries don't work correctly.  Make use of the SDR0/SDR1 registers
to adjust the buffer alignment when starting the DMA transfer.  Block device
I/O done by the filesystems will usually be aligned correctly, but character
device I/O may not be aligned correctly.  This should fix the problems with
dump(8) failing randomly on DECstations.
1999-12-03 04:26:17 +00:00
drochner
a00a9ff012 Convert to use rasops/wsfont, enabling colors.
For now, only the "putchar" and "copyrows" accelerations are used.
1999-12-02 23:04:44 +00:00