Commit Graph

313 Commits

Author SHA1 Message Date
eeh
fcd1351b4c Add support for AOUT_COMPAT which we'll need when the sparc port cuts to ELF. 1999-06-05 16:55:19 +00:00
mrg
14729c2b11 fix lpt definition. add audiocs at ebus. oops, comment broken/incomplete devices. 1999-06-05 14:34:22 +00:00
mrg
5e7ea137ac lpt at ebus. fixed (commented) audiocs attachments. 1999-06-05 14:33:44 +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
3670ff2120 if we are not bypassing the MMU, use ASI_PRIMARY. map PCI memory space
non-cached.  XXX clean this up by looking at the "non-cacheable" bit of
the full physical address.
avoid having 'nbuf' change between calls to `mdallocsys()' by setting it
in mdallocsys() like the MI allocsys() does.  XXX fix this too!
fix some printf lossage.
update for probeget() changes -- though bus_space_probe() appears to be
unused on the sparc64.
1999-06-05 05:35:41 +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
dcb6040569 clock attaches at ebus also now. 1999-06-05 05:10:01 +00:00
mrg
4b183190b5 update a commit slightly. 1999-06-05 05:08:25 +00:00
mrg
2ee43849be catch up with probe[gs]et() changes. 1999-06-05 05:05:11 +00:00
mrg
6dffb4dff3 use common IOMMU code for sbus and psycho (remove old iommu
device declaration, we don't want it).  pull in psycho, pci,
ata and pciide code.  clock, eeprom and power attach at sbus
*and* ebus now (clock as `eeprom' works).  add `lpt at ebus',
wd major number, and other misc. commented devices.
1999-06-05 03:16:19 +00:00
mrg
cb392a2e1d only set LD to /usr/ccs/bin/ld if it exists. avoid empty SFILES. 1999-06-05 01:56:31 +00:00
mrg
8613b8e39d avoid uninitalised pointers. 1999-06-04 14:29:38 +00:00
mrg
3a1472c106 GC dead code. add support for PCI and IDE boot device detection, plus hme ethernet.
should probably deal with be and qe, etc.
1999-06-04 14:00:38 +00:00
mrg
27bcf2b6e6 eek. sparc can have "wd" disks. 1999-06-04 13:58:59 +00:00
mrg
e40f54e4c7 GC dead code. add support for PCI and IDE boot device detection, plus hme ethernet.
should probably deal with be and qe, etc.
1999-06-04 13:55:37 +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
mrg
da08612af4 Ultra5/10 configuration. 1999-06-04 13:22:22 +00:00
eeh
b14c7f77cb Garbage collect. 1999-05-31 00:14:00 +00:00
eeh
07d5dfdd7b Fix some bugs in some more of those asm macros. 1999-05-31 00:13:16 +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
eeh
cd53dbd506 Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.
1999-05-30 19:11:33 +00:00
eeh
c2f2c064c0 Make pmap_enter() handle little-endian mappings properly. 1999-05-30 19:01:50 +00:00
eeh
de1ba9c829 Grab real locks from the sparc port. I suppose we could use casa and casx
instead of ldstub, but since we aren't doing n-way locking it makes little
difference.  N.B. Need to decide what to do with sparc64/sparc64/asm.h which
has name conflicts with sparc64/include/asm.h.  So far most of
sparc64/sparc64/asm.h has been moved to ctlreg.h.
1999-05-30 18:57:27 +00:00
eeh
dafdd170d7 Handle little-endian mapin requests. 1999-05-30 18:52:51 +00:00
mrg
01849b81ca allow the kernel to link with no arp (ether) devices 1999-05-30 07:36:28 +00:00
mrg
1b384c6911 clone intr.h from the SPARC. 1999-05-30 02:37:10 +00:00
thorpej
beb8d06638 Generally update the comment above vunmapbuf(). 1999-05-26 22:19:33 +00:00
thorpej
a2d06a4721 Generally update the comment above the vmapbuf() implementations. 1999-05-26 22:07:36 +00:00
thorpej
2580d306ab Change the vm_map's "entries_pageable" member to a r/o flags member, which
has PAGEABLE and INTRSAFE flags.  PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that.  INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now).  This will eventually
change now these maps are locked, as well.
1999-05-26 19:16:28 +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
09619f1942 KNF nit. 1999-05-23 11:41:39 +00:00
mrg
b2934b386d UVM is not an option these days. 1999-05-23 11:08:01 +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
eeh
bb0f8ef559 Fix OF_stdin() to return "stdin" not "stdout" so we really can get console input. 1999-05-22 20:30:54 +00:00
eeh
35d96171e7 Fix bus_type_t properly and enable ASI accesses for bus_space_{read,write}*() 1999-05-22 20:28:22 +00:00
eeh
56b080bed6 Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode.  Doh!.
1999-05-22 20:25:49 +00:00
lukem
e4a87aa1a9 * convert to using MI allocsys(). most ports were using an MD allocsys(),
although a couple still used the old pre-4.4-lite (?) mechanism.
* use format_bytes() to format the various printf()s that print out memory sizes
1999-05-20 08:21:42 +00:00
ad
a4f0570f7d SPARC console is black on white, and is centered by default. 1999-05-19 21:05:59 +00:00