Commit Graph

792 Commits

Author SHA1 Message Date
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
pk
20c3689343 Initialize local variable `bt' in cgthree_attach(). 2000-04-14 19:36:43 +00:00
thorpej
4044b5a41c Use separate callouts for motor-on and motor-off. Fixes a condition
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.

From enami tsugutomo <enami@sm.sony.co.jp>.
2000-04-07 16:58:53 +00:00
pk
99dbc425e9 Use copyin/copyout to get a colormap from/to user space.
Also, prepare for the case of a colormap maintained in kernel space.
2000-04-04 21:47:17 +00:00
thorpej
d11a9a62e2 Fix fallout from callout. 2000-04-04 17:20:54 +00:00
pk
b6a73eb3a1 Make this compile without RASTERCONSOLE too. 2000-03-31 12:58:54 +00:00
pk
a41d265271 Add hardware acceleration features for use with the RASTERCONSOLE option.
Code posted on port-sparc by `der Mouse'; it was slightly re-arranged to
fit the layout of this driver.
2000-03-30 13:57:50 +00:00
tsutsui
9100212ef0 Add a "sc_rev" member to ncr5380_softc and handle CXD1180 quirk
in MI ncr5380sbc.
2000-03-25 15:27:54 +00:00
hannken
43e3ea96f3 Fix typos from last commit (callout). 2000-03-24 11:46:46 +00:00
hannken
f7049d302a Fix a typo from last commit. 2000-03-24 10:30:12 +00:00
thorpej
7b918b4088 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 06:40:33 +00:00
pk
5eb7625f42 findzs() is now used only by the kgbd initialision code. 2000-03-21 12:48:45 +00:00
pk
c5bbc50487 Delete debugging printf(). 2000-03-21 11:24:02 +00:00
pk
436638ab3a Call rcons_ttyinit() on first open. 2000-03-20 11:27:16 +00:00
pk
c1813da35e Use fb_is_console(); retract fbconstty & fbnode from service. 2000-03-19 15:38:45 +00:00
pk
aca7e7fa24 Just don't force the baud rate in the driver, ever. 2000-03-19 14:58:02 +00:00
pk
c969f1b7df Add `fb_is_console()', which is a helper function for frame buffer
device drivers used to decide whether or not to act as console output.
2000-03-19 13:48:44 +00:00
pk
0ed0e258db Declare the prom stdio nodes and arguments. 2000-03-19 13:25:10 +00:00
pk
41fb5989fe Revise console device handling:
* do not require a `zs' driver for console handling
	* run the console on PROM primitives until a device recognises
	  itself as a console device during normal autoconfiguration.
	* allow (keyboard) devices to take over the input channel of
	  the PROM primitive-based console device.

As a result, consinit() is much simplified and does no longer have
to "detect" devices to setup a working console device. This complexity
has moved to individual drivers which interpret the PROM information
after they have attached to decide whether or not to act as a console.
2000-03-19 13:22:14 +00:00
mycroft
0af581a1a1 Add a ncr5380_attach() routine which does part of the initialization, attaches
the scsibus, and does the addref/delref dance.
2000-03-18 16:13:22 +00:00
jdc
e8a33a63d1 Add port power management ioctls. 2000-03-14 21:24:54 +00:00
jdc
797ac20035 Add power management hooks. 2000-03-14 21:20:51 +00:00
soren
95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +00:00
garbled
ea089cf90c New features:
tctrl now initializes the state of the internal LCD icons.  The icons
are unprogrammed at boot time.  This incidentally makes the DC-POWER icon
work.

Fixes:
Fix my stupidity in the ENVSYS stuff, and actually follow the API.
2000-03-09 07:04:08 +00:00
thorpej
a183d34f04 - Implement cnbell() -- ring the console bell. The cn_bell entrypoint
is optional.
- Add cn_bell to statically allocated consdevs as appropriate.
2000-03-06 21:36:05 +00:00
pk
5b285d9509 Just skip matching the slave' property against cf_unit'. 2000-02-14 18:07:37 +00:00
pk
b518dc6dfc Eliminate much of the goo in setting up zs device addressing. 2000-02-12 12:51:03 +00:00
thorpej
fe551f0e64 Fix a bug in disksort_*() which caused non-optimal ordering when multiple
active partitions were on a single spindle.  Add a b_rawblkno member to
struct buf which contains the non-partition-relative block number to sort
by.
2000-02-07 20:16:47 +00:00
pk
de608f33e1 Don't use PROM the virtual address (if any) for the device registers;
they are not reliably mapped.  Also, unmap registers if the device
cannot be configured properly.
2000-02-07 11:44:15 +00:00
pk
a5d6b10bad fdcstatus() formatting. 2000-01-28 15:46:20 +00:00
pk
9cfc74c312 Report write-protected disks. 2000-01-24 16:52:02 +00:00
pk
18ad190b10 * b_cylin -> b_cylinder; deals with PR9283.
* a few optimizations & misc. style updates.
2000-01-23 22:19:12 +00:00
thorpej
52242fdf9f Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:28:59 +00:00
pk
f8ac5484fa Medium sized code overhaul:
* Improve communication between the `hard' and `soft' interrupt handlers
  to better distinguish various interrupt sources.
* Eliminate several race conditions where we would set a time out handler
  only after starting the command on the hardware.
* Handle most timeouts by resetting the controller; there isn't much chance
  of recovery in any other way.  Currently, the exception is a timeout
  on I/O, in which case we first try to pulse the controller's TC line
  in order to abort the pseudo-dma sequence.  Apparently, "normal"
  conditions can induce such a timeout when there's no disk in the drive.
* Reduce the formatting gap parameter to 0x54.
* On the obio bus, interpret the `status' attribute.
* Minimize console diagnostic output if the errors we get appear to be
  caused by the absence of a disk.
2000-01-21 13:22:01 +00:00
pk
725c6438c1 Use bus_space(9) functions to access the controller registers.
Add probes to the attach routines before poking the chip to see
where the registers are located.
2000-01-17 16:57:15 +00:00
pk
c6b6f3883a Remove old-style boot device recognition. 2000-01-11 12:59:43 +00:00
garbled
e89216c73c avoid uninterruptable sleep on a CMD_REQ ioctl. 1999-12-17 00:32:25 +00:00
garbled
f02b80418b add <machine/tctrl.h> where needed.
Add some undocumented commands to the ts102 registers file, and fix a few
typos.

Modifications to tctrl.c:

Add entrypoints to driver for open/close/ioctl/poll.
Make device work with apmd. (still no support for suspend/sleep)
Make device work with ENVSYS API.
Slightly restructure handling of events.
Add function to make microcontroller requests.
1999-12-15 08:12:30 +00:00
pk
633fd1e1cc Check presence of Sbus interrupt properties before using them. 1999-11-21 15:23:01 +00:00
thorpej
1946167939 Update for pmap_enter() API change. No functional difference. 1999-11-13 00:30:26 +00:00
matt
73ae3282ab turns we need to tweak the auxio1 reg to enable the modem. also fix a call
to sbus_bus_map.  it's closer to working but I wonder if COM_FREQ is the
right value.
1999-11-12 05:20:03 +00:00
matt
8ffb2596c7 make this compile under current 1999-11-12 04:42:19 +00:00
matt
3744fe193f add some stuff needed for pcmcia support 1999-11-12 04:41:46 +00:00
pk
1ad621b38f Handle empty `input/output path' when looking for console device; patch
from Brian D. Chase.
1999-11-07 16:36:16 +00:00
pk
fbfe8a4407 Comply with recent MI scsi changes. 1999-10-21 13:46:06 +00:00
hannken
5c57af78d2 Remove now unused variable `i'. 1999-08-27 10:49:20 +00:00
thorpej
84670a44ef Initialize the default colormap to 0 == black, all others == full white. 1999-08-26 22:53:41 +00:00
thorpej
58858e0968 Suns use black-on-white as the default rcons colors. 1999-08-26 20:50:08 +00:00
ad
2c13aef146 - Update to match new rasops_init semantics
- Set RI_FULLCLEAR so that we clear the *entire* display
- Set RI_CURSOR and cursor position so that old cursor glyph gets wiped

Fixes PR: port-sparc/8121
1999-08-24 11:12:08 +00:00
ad
8974edc06c The 8bpp PROM console uses index 0 as black, 255 as white. Update ri_devcmap
to cater. Partially addresses PR port-sparc/8121.
1999-08-13 09:59:47 +00:00
matt
ec55b51b3a do a little colormap manipulation. use the tft power hooks in tctrl 1999-08-11 01:41:06 +00:00
matt
385ed7074b This now works properly and uses interrupts. If you close the lid, the
screen will turn off and when you open the lid screen turns on.  If you
do too rapidly, the driver won't be notified but you can press the micro
switch and it will come back.  Also "halt -p" now works so you don't
have to do Pause-P to powerdown.
1999-08-11 00:46:06 +00:00
christos
072b17778f split bwtwo driver in sbus and obio parts. 1999-08-10 04:56:30 +00:00
matt
ede200e1ab Add a driver for the Tadpole SPARCbook microcontroller. It doesn't
do much yet (except for power down support).  As sson as I figure
out to get its interrupts enabled, it will be much more functional.
(e.g., print console messages on low power warnings, be able to turn
off the TFT, etc.).
1999-08-09 18:39:58 +00:00
christos
26297cb6e9 PR/8178:Julian Coleman: sparc kernel will not build with cgtwo/cgsix but
without sbus. Remove call to cgsix-sbus-attach (impossible code). Make
routines static (they were declared static, but not defined static and
some compilers can complain).
1999-08-09 12:16:10 +00:00
thorpej
eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
matt
42c15639e0 Remove the false positive on the probe of the built-in modem
on tadpoles by calling comprobe1 to see if the modem is really
there.
1999-08-03 00:32:33 +00:00
matt
864afe0bc7 Add video blanking support. It does not power-down the TFT
since that requires talking to the H8 microcontroller and
that support is not yet done.
1999-08-02 20:36:57 +00:00
matt
016599a30b Colormaps now work. Besides a small fencepost error, the real problem
is that the Tadpole 3GX tech-ref-man was WRONG.  The RAMDAC registers
at at 4 byte offsets, not 8.  Once that was discovered, all the code
just worked.
1999-08-02 18:00:21 +00:00