Commit Graph

850 Commits

Author SHA1 Message Date
itojun 8dd04cdcd7 correct range check, have overflow check, fix type mismatches,
for cmap args and some other calls.  from openbsd
2002-08-03 00:12:48 +00:00
thorpej 36fb7ee740 Remote CPU_ISSUN4OR4C and CPU_ISSUN4COR4M, and instead express them
as (CPU_ISSUN4 || CPU_ISSUN4C) and (CPU_ISSUN4C || CPU_ISSUN4M),
respectively.  The compiler can still optimize as desired by expressing
them this way, and it simplifies adding new tests.

While here, just remove CPU_ISSUN4MOR4U; it's not used by anything.
2002-07-17 04:55:56 +00:00
gmcgarry 6c672d0196 Make this work with AUDIO_C_HANDLER. 2002-06-13 21:02:45 +00:00
gmcgarry 471fad1d4c Hasn't been used for years. 2002-06-13 20:57:03 +00:00
thorpej 4a0ee23b99 Set COM_HW_NO_TXPRELOAD. 2002-04-12 19:34:24 +00:00
pk b7cae9b821 Pass fully encoded bus addresses in the attach arguments. 2002-04-11 11:11:23 +00:00
uwe 118ae09c44 Fix error message. 2002-04-04 17:45:24 +00:00
darrenr ff961593ca apply patches from PR#10170 2002-04-03 16:34:11 +00:00
uwe bf8a9d7f0d Fix cast in sbus_promaddr_to_handle(). 2002-03-21 04:32:25 +00:00
eeh 8ccad96d54 Add sbus_promaddr_to_handle() to convert a prom address to a bus_space_handle_t. 2002-03-20 18:39:44 +00:00
atatat 31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
uwe 40a8bc1d34 Drop ebus_bus_map(), use plain bus_space_map() instead. 2002-03-12 00:32:30 +00:00
uwe 3dfde702f3 Do not pass bus type argument (R.I.P.) to bus_space_map2. 2002-03-11 23:36:17 +00:00
pk 7e8becd64d * `bus_type_t' is gone.
* Use BUS_ADDR() where appropriate to encode I/O space and physical
  address offset into a `bus_addr_t' value.
* Drop obio_bus_map() since it's now completely equivalent to bus_space_map()
* Use bus_space_map2() to map device space at a fixed virtual address.
* Remove the virtual address argument from sbus_sbus_addr()
2002-03-11 16:27:01 +00:00
uwe b7a9ca77f2 We are using shared headers from dev/ebus now. 2002-02-18 04:55:00 +00:00
uwe e158bed889 Switch to shared EBus headers in dev/ebus. 2002-02-18 04:52:26 +00:00
uwe 8598481f3c Convert to use shared headers in dev/ebus. Move ebus_softc definition here.
Normalize bar field of EBus children PROM "reg" property to be the BAR
offset in PCI config space like on sparc64 when building ebus_attach_args.
2002-02-18 04:50:57 +00:00
uwe 7948c19410 Cosmetic changes: clean up debugging ifdefs and use consistent wording
in panic messages.
2002-02-08 13:10:42 +00:00
uwe 4495f84bf9 Driver for pckbc in javastations. Not finished yet. 2002-01-31 17:34:51 +00:00
uwe 39f110f6f7 Auto-configuration output formatting nit.
Don't start the attachment message on a new line.
2002-01-31 11:51:25 +00:00
jdolecek ff8305bbac Switch to MI dev/md_root.c for archs which don't have any special
memory disk hooks (i.e. everything except atari).
2002-01-21 21:56:57 +00:00
uwe 0207013726 Now that sbus_bus_mmap was converted to do the proper address
translation, get rid of sbus_bus_addr.  Since sbus_bus_addr is used by
framebuffer drivers that are shared with sparc64 we cannot just change
the callers to use BUS_ADDR() w/out coordinating the change with
sparc64 that uses a different calling protocol, so stub our
sbus_bus_addr to just return BUS_ADDR.
2001-12-31 15:00:58 +00:00
uwe 309e659bc4 Rewrite sbus_bus_mmap to conform to new signature and unbreak bus_space_mmap.
This fixes the problem with X server killing the kernel by writing to
the middle of physical memory instead of the frame buffer.
2001-12-20 07:53:59 +00:00
uwe 9a2a6c77e8 tabify 2001-12-11 05:54:56 +00:00
uwe 78eadd17b7 Attachment for MI com(4) driver at ebus. 2001-12-11 00:31:08 +00:00
uwe 81f0e10ca5 rtc (ds1287a) time of day clock at ebus. 2001-12-11 00:29:21 +00:00
uwe 255d046f95 EBus support for ms-IIep. 2001-12-11 00:25:31 +00:00
uwe e0046f836b EBus support for ms-IIep. This file should eventually be merged into
sys/dev/ebus/ebusreg.h and shared with sparc64 port.
2001-12-11 00:24:03 +00:00
mrg e5f5465184 avoid a memory leak 2001-10-05 13:32:23 +00:00
augustss 1339e88a86 Add a new optional method, dev_ioctl, to the audio hardware driver interface.
It is called when an unrecognized ioctl() is performed on a device,
thus allowing ioctl()s that frob the hardware driver (like loading
microcode).
2001-10-03 00:04:47 +00:00
eeh 98ecb5b215 getprop* -> PROM_getprop* 2001-09-26 20:53:05 +00:00
eeh 766a9b8c9c Change bus_space_mmap() signature to the official one. 2001-09-24 23:49:31 +00:00
chris 0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
wiz c52d355d71 "wierd" is weird. 2001-08-20 12:20:01 +00:00
wiz 1e378c4c12 precede, not preceed. 2001-08-20 12:00:46 +00:00
jdolecek 74954dadf9 use unsigned variable types as appropriate 2001-08-05 18:07:51 +00:00
wiz cc0b68092e Correct various misspellings of 'transfer' and inflected forms. 2001-07-08 18:06:42 +00:00
mrg 9dbb764f88 KGDB needs both zs_putc and zs_getc; make them non-static. 2001-06-30 20:14:00 +00:00
mrg 2307774c9a #include <machine/autoconf.h> 2001-06-29 03:32:10 +00:00
uwe 25d726e4eb Attach serial console at com. 2001-06-20 03:13:19 +00:00
pk c522c18479 Use NFB from "fb.h" to include console framebuffer support. 2001-06-11 13:34:51 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
pk e95e804c2f Pull in "opt_kgdb.h"; see PR#13036. 2001-05-26 10:22:32 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +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 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
pk d373e2120f Fix fdc_c_hwintr() and use it as a fall back if the `fast trap' handler
cannot be registered.
2001-04-19 14:53:36 +00:00
petrov 1c9cc1b092 use NCR_F_DMASELECT instead of ncr53c9x_dmaselect 2001-03-29 03:30:19 +00:00
tsutsui 43bd337868 Update for recent changes to the MI i82586 driver.
(added 'why' argument to the channel attention hook function)
2001-03-13 16:31:14 +00:00
pk 1b84e6fb33 pasto: sc_maddr => sc_mem 2001-03-09 10:19:54 +00:00
thorpej 5dedbd1c97 Duh, don't forget the proc argument. 2001-03-08 01:46:18 +00:00
thorpej 3423154d78 Use bus_dmamap_load(), not bus_dmamap_load_raw(). 2001-03-08 01:38:57 +00:00
bjh21 fe3273fbb4 Patch from PR kern/8001, submitted by Rafal Boni.
This adds support for EtherExpress/16 cards with 16k of RAM, and in the
process adds general support for PIO mode on these cards.  This entails
changing the way the i82586 driver handles bus barriers, since it doesn't
allow for strange cases like this.

This has been tested on the i386 port with the 'ix' driver in both
16KB (which was the source of the problem) and 32KB modes, as well
as with the 'ef' driver.  I've tested it (briefly) with 'ei' on arm26
as well.  In theory, drivers other than 'ix' should follow precisely the
same code paths as before.
2001-01-22 22:28:43 +00:00
eeh 8c3f6a0d10 Adapt to new line discipline scheme. 2000-11-02 00:37:56 +00:00
eeh ec079ca021 Pass on the sbus frequency. 2000-11-01 06:27:45 +00:00
pk f4dbaa7ac3 This file now lives in sys/dev/sun. 2000-10-31 21:55:14 +00:00
pk 2c6b19bec4 Add new-line to md attach message. 2000-10-20 11:28:04 +00:00
pk 9d61e4d9a6 Account for the top-most 4 bits of obio addresses being zero on sun 4/100
machines, when inferring zs PROM device numbers from the physical address.
2000-10-18 23:55:11 +00:00
christos 6708aee34f add missing kd_attach_input routine.
someone needs to clean this shit up.
2000-10-12 21:26:28 +00:00
nathanw 5127aa189d In fdioctl(), allocate fd_formb dynamically when needed, rather than on
the stack, and remove the no-longer-necessary PHOLD()/PRELE() calls
in fdformat().

(This eliminates 1/3 of the instances of PHOLD()/PRELE() in the kernel code.)

XXX We still have too many mostly-redundant floppy drivers.
2000-08-24 20:04:28 +00:00
pk 702e1dd9e6 Use the framebuffer drivers & header files that now live in /sys/dev/sun. 2000-08-22 21:28:24 +00:00
pk f343e5777c Add `dma' to the `early device' list, since we need it before an `esp'
is configured. Traced and tested by Julian Coleman.
2000-07-25 21:50:03 +00:00
toddpw 6c80daae8d Ignore all undefined bits in the Tadpole microcontroller status register.
Only the low nibble is defined, and on at least one 3gx (mine) there is an
undefined bit which reads as a one -- bit 6 (0x40). This screwed tctrl_intr()
which would loop forever, thinking it always had new events to process.
2000-07-25 09:57:59 +00:00
matt 1d97a430c4 Enhance this so it support the com port on the JavaStation 1 as well as
the tadpole internal modem.
2000-07-15 19:57:03 +00:00
pk 406e0f779f Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
2000-07-09 20:57:41 +00:00
pk 2a57393a0f Re-arrange headers; drop <machine/cpu.h>. 2000-07-09 20:38:34 +00:00
pk 0cc7c0e470 Report spurious VME interrupts only #ifdef DEBUG for now. The i82586
based `ie1' board seems to cause this for no apparent reason.
2000-07-04 22:22:56 +00:00
pk 3cffbb811c Pass correct argument to the console channel close routine. 2000-07-04 13:57:40 +00:00
pk 93f987a210 The `si' driver has been transformed into an MI VME frontend. 2000-07-03 23:30:33 +00:00
pk 047b6f9582 * Remove MAX_DMA_LEN & si_minphys().
* Disable the DMA engine when setting up a DMA transfer, just in case
  the 5380 driver didn't instruct us to do so already.
* More useful debug output when entering the "left-over bytes" case after
  a DMA transfer finishes.
2000-07-03 20:55:12 +00:00
pk b7e36aabb5 When winding down a DMA transfer, don't complain about the actual
transfer count being smaller than the minimum transfer size for which
we would use DMA. The device may be disconnecting, to complete the
transaction at a later time. Just let the 5380 engine proceed acting
on the current SCSI bus phase.
2000-06-29 14:06:40 +00:00
mrg 8daa58f52b remove include of <vm/vm.h> and <machine/pmap.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:40:05 +00:00
pk 618d3d0fde VME/IOMMU DMA load must also relocate DVMA addresses to the start of VME space. 2000-06-27 09:05:23 +00:00
pk e2b1b6cd42 Split si & sw drivers. 2000-06-26 19:54:08 +00:00
pk 51a2c92940 The `sw' driver should not use vme bus routines. 2000-06-26 09:50:00 +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
pk 8b3ad4a667 Use vme_dmamap_create() instead of bus_dmamap_create().
Remove Sun hardware id test from si_match().
2000-06-25 13:09:52 +00:00
pk 560d1ea54c Implement vme_dmamap_create/vme_dmamap_destroy, which allows us to
select the appropriate DVMA subrange for VME devices.
2000-06-25 13:07:34 +00:00
pk d982283952 vme4_dmamap_[un]load: ensure enough DVMA space is allocated to cover the
buffer and store that amount in the DMA map to avoid re-computation.
Also add a cache flush as the bus_dmamap_sync() don't do that yet.
2000-06-18 19:30:21 +00:00
pk a29dc4045f Conversion to bus_space*(). 2000-06-18 19:19:53 +00:00
pk 98726268ee Remove pointless debugging check. 2000-06-15 14:42:32 +00:00
pk cc9163a28a Enable DMA interrupts. 2000-06-15 14:27:07 +00:00
pk 752b4566c4 bus_dmapmap_create: boundary must be 0, not NBPG. 2000-06-15 12:12:05 +00:00
gmcgarry 6de3467b52 - Clean up use of AUDIO_C_HANDLER.
- Copy bus_space handles into auio for fast handler.
2000-06-06 22:34:34 +00:00
nisimura 4371d91433 Have MI ncr53c9x_attach() the 2nd and 3rd arguments for scsipi_adater
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
2000-06-05 07:59:50 +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
eeh 3cee90e0e1 Need to provide a consdev to the cons_attach_input call now. 2000-05-21 14:36:15 +00:00
eeh 424619ca1a Fix the sparc64 console.
Unlike the other Sun machines, UltraSPARCs can have consoles run on different
chips than zs, so we need to support them.  So, here we go:

	Add a new PROM console driver with a major number and everything.
	This is the default driver if nothing else attaches.  It does not
	use the keyboard driver since the PROM translates keystrokes itself.
	(Unfortunately it also swallows L1-A).

	Have the keyboard driver take over the console when it attaches on a
	serial port.  When a serial port detects a keyboard and attaches the
	keyboard driver, it needs to provide a set of consdev vectors.  They
	keyboard driver will use those to send I/O to the keyboard and mouse.
2000-05-19 05:26:16 +00:00
thorpej 463931b3ba Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc.  Those
platforms should be changed to use device_register().  In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
2000-05-16 05:45:44 +00:00
pk 1bf775b965 Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs. 2000-05-09 22:42:08 +00:00
pk 2d12c9e33b The bus_dma(9) implementation now allocates DVMA addresses in
bus_dmamap_load_*() routines only. Note that DMA memory buffers
allocated with bus_dmamem_alloc() _must_ be loaded by bus_dmamap_load_raw().
2000-05-09 22:39:35 +00:00
mycroft a7fb64072e Fix the RCS tag format. Duh. 2000-05-08 03:11:06 +00:00
mycroft f8e0411615 Make the audioamd assembler code compile again. 2000-05-08 03:09:54 +00:00
mycroft f5bd37be57 Make the SPARC audioamd driver at least *compile*. Well, the C code, that is.
*sigh*
2000-05-08 02:44:31 +00:00
augustss 361f2141f7 Adapt to new am7930 driver. PR 10033 from Gregory McGarry. 2000-05-02 06:35:12 +00:00
pk a558005cec When constructing `ri_devcmap[]', pack four instances of the LUTs in each
32 bit wide entry (as not documented in the non-existent rasops(9)..)
2000-04-17 20:37:28 +00:00
pk 470504f184 Use screen attributes passed to our hardware rasops routines.
Move colormap initialization to cg6reset(), so this is also done
on last close of the framebuffer device (e.g. after X server shutdown).
2000-04-16 22:17:03 +00:00
pk a644297344 Initialize the rasops device colormap to match colormaps used by
our supported devices (including even coloured text on the console).
2000-04-16 22:12:05 +00:00
pk 065ce82243 Switch initial colormap setup again to be compatible with the PROM's,
i.e. background at index 0: white, foreground at index 255: black.

Also, allocate a slice for an ANSI colormap, so we can experiment
with coloured text on the bare console.
2000-04-16 22:07:24 +00:00
pk 8505eb6375 Slight optimization when searching the video parameter table. 2000-04-16 21:01:43 +00:00