Commit Graph

144 Commits

Author SHA1 Message Date
pk f5839cdae8 Minimal changes to accomodate the console input channel attachment
changes in the keyboard driver (see /sys/dev/sun/kbd*)
2000-03-19 13:29:14 +00:00
eeh 3b51289caa Revamp interrupts again:
Fix a bug causing interrmittent panics in interrupt dispatch.
	Use interrupt vectors for softints.
	Add a new send_softint interface.
	Improved D$ flushing.
	Improve traptrace and other debugging enhancements.
2000-03-16 02:36:56 +00:00
soren 95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +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
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
thorpej 52242fdf9f Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:28:59 +00:00
pk cd1f76b21b Remove old-style boot device recognition. 2000-01-14 14:27:14 +00:00
mrg ca66e6b619 - pass slot number to sbus_get_intr() as a new argument.
- in sbus_get_intr(), if we are not an onboard device (ie, sbus card),
  encode the slot number into the sbi_pri so that we can later extract
  it and use it to find the interrupt map & clear registers for this
  device.
- remove "intr" support as it is really pre-sun4u only.
- don't "pause" for so long in sbus interrupt debug messages..

with the slot number being passed back from sbus_get_intr(), the FS/BE
card in an ultra2 now appears to get interrupts and gets beyond
waiting for the scsibus probe!
1999-11-25 05:03:53 +00:00
mrg abc579187f prefix a variable with "pci_" 1999-11-24 01:53:38 +00:00
pk a4e956ce77 Also pull in <pci/pciidereg.h>. 1999-11-21 11:17:35 +00:00
thorpej 1946167939 Update for pmap_enter() API change. No functional difference. 1999-11-13 00:30:26 +00:00
eeh 793cc7a41b Update to post 1.4. 1999-10-11 01:57:43 +00:00
thorpej 58858e0968 Suns use black-on-white as the default rcons colors. 1999-08-26 20:50:08 +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
thorpej 3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
eeh 9cf2782159 Move the DVMA mapin/mapout functions from the SBus driver to the iommu driver. 1999-06-20 00:51:29 +00:00
mrg 0525e9c7ef add ebus attachment for cs4231. this does not work as it requires ebus DMA and will panic if enabled. but it should otherwise be mostly complete. 1999-06-07 14:59:14 +00:00
mrg aa506f8098 copyright foo. in the future, we will all be binary-redistributable. 1999-06-07 05:40:08 +00:00
eeh 1884f05354 Another general cleanup:
Remove the entire idea of fasttrap interrupts since V9 traps are really cheap,
the CPUs are really fast, and the completely different trap frames would make
these handlers really difficult to implement.

pmap_changeprot() was only used by the clock and one other place; deprecate it.

probeget() and probeset() now take 64-bit addresses even in 32-bit mode so we
can probe IO locations by physical addresses.

Some pmap cleanup.

Some more copyright cleanup.
1999-06-07 05:28:03 +00:00
eeh 186c3eba2b Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.
1999-06-05 21:58:16 +00:00
mrg 756c2cde22 map in registers, configure interrupts, this appears to be OK now. 1999-06-05 14:19:44 +00:00
mrg e8ccf39491 find ebus device INO values via the "interrupt-map" and "interrupt-map-mask" properties. 1999-06-05 14:18:26 +00:00
mrg cc49a21298 use common IOMMU routines. 1999-06-05 05:30:43 +00:00
mrg da265ce045 clean up a bit, implement pci_conf_{read,write}() with probe[gs]et() (not yet used). 1999-06-05 05:29:50 +00:00
mrg bb0d20abc4 lpt at ebus. 1999-06-05 05:28:36 +00:00
mrg 2ee43849be catch up with probe[gs]et() changes. 1999-06-05 05:05:11 +00:00
mrg 8613b8e39d avoid uninitalised pointers. 1999-06-04 14:29:38 +00:00
mrg a1c100d377 clone this from the macppc port. 1999-06-04 13:51:57 +00:00
mrg 10b89455c7 pull iommu code out of sbus code so we can share it with the PCI.
define some useful PCI macros.
1999-06-04 13:48:48 +00:00
mrg 03adf4aad1 PCI driver for the UltraSPARC. this only works on the Ultra5/10 machines
(`SUNW,sabre') for now, and it doesn't really quite work there yet anyway.
the bus space/dma code is cloned from the sbus driver.  the IOMMU code also
is cloned from the sbus code, but separated out into iommu.c so that we can
share it with the sbus driver.  hopefully, much of the bus space/dma code
can also be re-shared with the sbus driver and the ebus driver but for now
these copies will do.

support for the real UltraSPARC PCI (`SUNW,psycho') is unwritten, though
most of this code is shared with it.

we can probe PCI config space and try to configue devices, but interrupts
don't work yet...
1999-06-04 13:42:14 +00:00
mrg 36237341af support for the UltraSPARC `Extension Bus' found on the PCI machines.
the bus space/dma code is cloned from the PCI code to do the same thing
which itself was cloned from the sbus bus space/dma code.  the bus dma
code is non-functional at this point.
1999-06-04 13:29:13 +00:00
eeh b14c7f77cb Garbage collect. 1999-05-31 00:14:00 +00:00
eeh 64b891fc8d Add code to support using %tick as the system clock if no "counter-timer" node
is found.
1999-05-30 19:13:33 +00:00
thorpej 5832084eaf bus_dmamem_map() maps DMA safe memory, which is usually one or more
managed pages, into KVA space.  Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().

Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE.  We do this for a couple of reasons:

	(1) On systems that have H/W mod/ref attributes, the hardware
	    may not be able to track mod/ref done by a bus master.

	(2) On systems that have to do mod/ref emulation, this prevents
	    a mod/ref page fault from potentially happening while in an
	    interrupt context, which can be problematic.

This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!

Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
mrg 1bd01d4677 pull struct strbuf + defines into iommureg.h. properly merge previous commit. 1999-05-24 00:25:31 +00:00
ad 080560c8c6 - Setting initial position of cursor is up to caller.
- Set cursor position properly for SPARC. From Juergen Hannken-Illjes.
1999-05-23 17:59:39 +00:00
mrg ae1a84a61f place iommu definitions in iommureg.h 1999-05-23 07:24:02 +00:00
eeh 193cc31772 Separate out the generic console handling from zs.c 1999-05-23 02:46:35 +00:00
eeh 92ad9c4080 Start putting in hooks for non-zs console devices. 1999-05-23 02:45:19 +00:00
eeh f1066c97ad If the zs has not yet attached use the PROM for console input. 1999-05-22 20:34:56 +00:00
eeh 60b89ebf96 Well, looks like the MI allocsys() broke the dvmamap, so instead of using a
single map move it to the bus controller driver so each bus can handle its own
IOMMU without conflicts.
1999-05-22 20:33:55 +00:00
ad a4f0570f7d SPARC console is black on white, and is centered by default. 1999-05-19 21:05:59 +00:00
ad 02bc362e3e Add arg to rcons_init() that when set causes screen to be cleared. 1999-05-19 20:34:19 +00:00
ad 218af6a342 Insert missing code that defines screen metrics for rcons. This fixes the
more blatant rcons brokenness (ie no panics).
1999-05-19 19:59:04 +00:00
ad 3d5a1b1eea Sync with last two changes made to sys/arch/sparc/dev/fb.c (don't clear
screen, typo).
1999-05-18 21:38:07 +00:00
ad 20be6a2a2a Fix typo on my behalf. From Juergen Hannken-Illjes. 1999-05-16 21:19:33 +00:00
ad 3b602e5afa Panic if rasops_init() fails us (should never be the case). 1999-05-15 13:04:03 +00:00
ad 6834085f8b Make sure rasops_info descriptor is zeroed out before initializing. 1999-05-15 12:52:22 +00:00
ad 613a381d71 Update configuration to match `rasops' fixes and config glue. 1999-04-26 04:25:38 +00:00
eeh e921bb961d Defer final console attach to zs_attach(). 1999-04-25 16:16:31 +00:00
eeh df102fbcb5 Deprecate `findzs()' and try to map in the zs registers if they're not mapped
by the prom.
1999-04-24 21:08:12 +00:00
ad 33df642800 Leave font selection to 'rasops' until 'rasops1' has been completed and can
handle non {8,16} pixel wide fonts.
1999-04-13 19:02:38 +00:00
ad d959cff2ca Fonts for rcons are now handled in sys/dev/wsfont. 1999-04-13 18:59:15 +00:00
ad 5140c302ce Bring sparc/sparc64 fb code and kernel configuration into line with
rcons changes.
1999-04-13 18:45:40 +00:00
wrstuden 2adccc50fa Add pps support. Only enable pps if CLOCAL & !MDMBUF. 1999-03-27 01:21:36 +00:00
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
mrg 7b93dd1117 remove opt_uvm.h 1999-03-25 00:41:46 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
eeh 3c8b9d7307 Some devices don't have a `device-type' property we can use to allocate
an IPL.  Check for those by name.  Give the rest a default IPL of 2.
(Added `SUNW,CS4231' to the list.)
1999-03-18 03:23:53 +00:00
eeh 89c4b1c360 Let's try to make prom_cnget() work. 1999-02-28 00:29:24 +00:00
hubertf 56f2d188fc RCS ID police 1999-02-15 04:54:34 +00:00
mycroft 2a304686e6 Minor cleanup.
Make the initializer for BAUDLO depend on PCLK directly; it was incorrect on
some ports where PCLK is not 4.9152MHz.
XXX Is the default value actually used?
1999-02-11 15:28:03 +00:00
bouyer f6f9f8a965 Change DIOCEJECT to do what's needed to eject a device before the eject
command (unlock for sd and cd) if no other partitions are open, return
EBUSY otherwise. DIOCEJECT will have the old semantic if its argument is not
0. The old ioctl has been renamed to ODIOCEJECT for binary compatibility.
1999-02-08 16:33:16 +00:00
jonathan c9d036d796 defopt MEMORY_DISK_{HOOKS,SERVER,IS_ROOT}. 1999-02-07 09:34:58 +00:00
mycroft be1af660c0 Don't set DCD_IE in the frontends. KGDB doesn't even use DCD, and the tty
frontends get it from zsparam() anyway.
1999-02-03 20:25:05 +00:00
eeh 9c06e4a454 Need to put IGN in SBUS slot interrupt vectors as well. (From Kapil Chowksey) 1999-01-10 23:32:57 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
eeh cdeacb83c2 Don't use fuword()/suword() -- can't count on their size. 1998-09-11 00:04:16 +00:00
eeh a112a2a4cc It slices. It dices. It does everything except exec a sparc32_compat init. 1998-09-05 23:57:24 +00:00
pk 315ac1f6f7 These are replaced by drivers in <sys/dev/sbus>. 1998-09-05 17:46:33 +00:00
pk c20e88b71e #include <dev/sbus/sbusvar.h> 1998-09-05 16:50:37 +00:00
pk 2a85575583 Most of this now comes from <sys/dev/sbus/sbusvar.h> 1998-09-05 16:44:39 +00:00
pk 181a8253a0 Nuke temporary `getpropA()'. 1998-09-05 16:23:08 +00:00
pk 5ca09ab5b1 Remove unused files. 1998-09-05 16:00:42 +00:00
pk b39d7e33be Assign my copyrights to TNF. 1998-09-05 15:42:41 +00:00
eeh cf9a8a5a53 Periodic update: now starts probing devices. 1998-09-02 05:51:35 +00:00
eeh 26d2d906c7 Some more 64-bit cleanup. Now everything compiles. 1998-08-30 15:32:16 +00:00
mrg 396330e186 remove sparc64 "options BUS_DMA" -- it is now standard 1998-08-27 11:43:14 +00:00
mrg bd85d62257 move isp sbus attachment to dev/sbus and support it on the sparc64 1998-08-27 11:40:06 +00:00
mrg 8912df90bf fix missed sparc -> sparc64 1998-08-26 10:36:42 +00:00
mycroft 62b1bf3e2e Assign my copyrights to TNF. 1998-08-15 10:51:16 +00:00
mycroft 6dc903202f Assign my copyrights to TNF. 1998-08-15 10:10:47 +00:00
mycroft 129cbf95ee Minor edit. 1998-08-15 05:16:41 +00:00
mycroft b2827b9d36 Assign copyright to TNF. 1998-08-15 04:16:55 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
mrg db03bbe99b this has moved (and was never used here anyway) 1998-07-27 06:09:02 +00:00
drochner 49bb9d8214 adapt to LANCE driver split 1998-07-21 17:36:01 +00:00
eeh d94474ccc9 General update:
Added genassym.cf
	Removed lderr which should never have gotten in
	Removed lots of dead code from locore.s
	Added some softint stuff to intr.c
	Added support for halt -p
	esp and le both use bus_dmamap_*() functions now
		instead of kdvma_mapin()
	groundwork for PCI (but we still have no drivers for
		any sun4u PCI devices)
1998-07-07 03:05:02 +00:00
jonathan 011f2bda08 defopt NS, NSIP. 1998-07-05 06:49:00 +00:00
jonathan 3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
mrg ca23582a6b moved <machine/sun_disklabel.h> to <dev/sun/disklabel.h> 1998-06-20 05:58:05 +00:00
eeh 01e2e698b6 Import of sparc64. 1998-06-20 04:58:50 +00:00