Commit Graph

867 Commits

Author SHA1 Message Date
atatat 97c67a9bae Add bridge pseudo devices to GENERIC configs 2001-09-01 21:52:23 +00:00
simonb 023bdd2bf2 Use comments around the token after a #endif. 2001-08-31 04:44:54 +00:00
tsutsui 62c3bdeea4 sysctl(2) -> sysctl(3) (in comments) 2001-08-26 16:22:20 +00:00
chs c489e9bff4 add missing pmap_update(). 2001-08-19 18:09:20 +00:00
chs 2cdad949d0 use pmap_k* in vmapbuf() and vunmapbuf() since there's no VAC on this platform.
in vunmapbuf(), call pmap_*remove() explicitly since uvm_km_free_wakeup()
will soon no longer do it for us.
2001-08-19 17:34:49 +00:00
scw 13c2f8b505 Some more things ticked off the list. 2001-08-12 19:28:28 +00:00
scw 79abe4afda Fix the clock device offset. (Overlooked in last commit) 2001-08-12 19:16:18 +00:00
scw e97b8f6555 clockreg.h is no longer needed now we use the MI mk48txx driver. 2001-08-12 18:36:17 +00:00
scw e9261b9f13 Time Keeper NVRAM driver. 2001-08-12 18:34:25 +00:00
scw bb210bda7e Split the nvram/rtc functionality away from the clock interrupt code
and attach it as `timekeeper0 at mainbus0'.
Use the MI mk48txx nvram/rtc access functions instead of home-grown
versions.

It should now be very easy to add a character device for the benefit
of userland access to NVRAM.
2001-08-12 18:33:12 +00:00
scw 7374ebbf8c Slight tweak: Avoid needlessly purging cachelines which we've just flushed. 2001-08-12 18:13:45 +00:00
scw e8ba963ae7 Change a post-decrement to a pre-decrement. 2001-08-07 17:25:19 +00:00
scw aac15fa001 Create the `machine' symlink before building. 2001-08-05 10:52:05 +00:00
scw 86b01af066 Make this work again for mvme147... 2001-08-05 09:45:39 +00:00
matt f33b1a3fd8 This is a HOST program, so make compile as one. 2001-08-05 06:10:25 +00:00
bjh21 ad2c12a28d Bump version numbers of all bootloaders that use loadfile/ELF, to account for
my changes to symbol loading.  I should probably have done this at the time,
but it's better late than never.
2001-08-02 12:24:05 +00:00
chs 0d8e804191 fix typo in previous. 2001-07-31 02:17:27 +00:00
scw 6e0195e742 Make the set_page_cacheable/set_page_cacheinhibit functions do the
right thing on 68030 again.
2001-07-30 21:32:49 +00:00
scw da3836f00d Flush the caches in pmap_remove_mapping() when PRM_CFLUSH is specified.
Also, flush the ATC for the page in pmap_kenter_pa() after setting up the
mapping. With any luck this last one might just solve the 060 problems I've
been seeing...
2001-07-30 21:25:08 +00:00
scw d750508a87 Hook the error interrupt only once, otherwise we'd fail when hooking
the interrupt for the 2nd DRAM board where two boards are present.
2001-07-28 08:30:23 +00:00
scw 27ae3aab7c Blah, yet another nit: s/irq/ipl/ 2001-07-27 21:56:10 +00:00
scw ea00e7cda2 Don't bother trying to initiate a DRAM scrub on startup as it requires
frobbing with registers which are marked as "For Test Purposes [only]".
2001-07-27 21:54:07 +00:00
scw c184f03348 Remove Mistakenly Left In comments around some `#ifdef DIAGNOSTIC' tests. 2001-07-27 20:48:58 +00:00
scw 8343a1492f Forgot to shift the DRAM Bank identifiers by four. 2001-07-27 20:33:35 +00:00
scw f169034d7f Fix a braino in the check for a jumper across pins 1-2 of J1 (mvme1[67]7).
Spotted by Chuck Silvers.
2001-07-27 18:58:23 +00:00
scw 9ac6178585 memc attaches at mainbus now. 2001-07-27 18:40:27 +00:00
scw 7e2f2acb8e Flesh out the memory controller driver (at least for the MCECC chip)
and attach it at mainbus since it depends both PCCChip2 and VMEChip2
(or the VMEChip2 interrupter) starting first.

We can finally enable, detect and log DRAM ECC errors.
(The PROM disabled ECC checks by default)
2001-07-27 18:38:54 +00:00
scw 5b69ac0a44 Apply pmap_k{enter_pa,remove} patches provided by Chuck Silvers. 2001-07-23 20:34:00 +00:00
wiz a9356936b4 seperate -> separate 2001-07-22 13:33:58 +00:00
scw b4c68ef164 Descend into wrtvid in all but the install pass. 2001-07-19 18:18:30 +00:00
thorpej babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
scw eef68ab123 In bus_dmamap_sync4060(), fold the POSTREAD case into the PREREAD case
where it belonged in the first place.
2001-07-18 17:21:49 +00:00
scw 6a9bccd130 Make absolutely sure page tables are not cacheable on 040/060 cpus.
(Not strictly required for the 040, but mandatory for the 060).
Also revamp cache enable/disable functions for the benefit of
bus_dmamem_map().
2001-07-18 17:18:53 +00:00
scw db111a0133 Restore FPU context properly on 68060-specific kernels... 2001-07-18 17:13:15 +00:00
abs 01b024cd5b Standardise TCP_COMPAT_42 as commented out, grouped with other COMPAT options,
and with the comment '4.2BSD TCP/IP bug compat. Not recommended'
Add commented out 'TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG'
(All hail amiga and atari which make some attempt to automate the
multiplicity of config files...)
2001-07-08 16:32:12 +00:00
scw c1ab2b5460 bcopy -> memcpy
bzero -> memset
bcmp -> memcmp (note that the MI libsa's memcmp() still calls bcmp()...)
2001-07-07 09:06:43 +00:00
scw ff267f1e06 bzero -> memset
bcopy -> memcpy
bcmp -> memcmp
2001-07-07 07:51:37 +00:00
scw 8593b82c71 One less item (h/w assisted soft interrupts) 2001-07-06 20:12:34 +00:00
scw 35110949ce Ditch the `simulated' software interrupt in favour of
hardware-assisted soft interrupts on all boards.
(Note: VMEChip2-less 162/172 not yet tested)

This greatly simplifies the `rei' path and allows
interrupt nesting to be tracked somewhat more easily.

As a result we now have a working CLKF_INTR() macro
and can detect uvm_fault() being called from an interrupt
(although there may still be a very short race detecting
the latter; need to investigate further).
2001-07-06 19:00:12 +00:00
scw 6d598bac6d Another instance of the MD siop driver which slipped the net... 2001-07-03 17:36:01 +00:00
wiz f3f6c5b675 `accessible' only has one `a'. 2001-06-19 12:52:20 +00:00
christos 0f380fac15 Add an e_trapsignal member to struct emul, so that emulated processes can
send the appropriate signal depending on the trap type.
2001-06-18 02:00:48 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
wiz 0a600be867 receive, not recieve 2001-06-12 15:17:10 +00:00
scw 712d37e53b G/C an unused parameter to isrdispatch_vectored(). 2001-06-11 11:26:42 +00:00
scw 9b0b23c664 Stack adjustment for autovectored interrupts wasn't quite right... 2001-06-11 11:24:40 +00:00
scw 179dd3e579 sigh. It also helps to switch back to .text ... 2001-06-10 17:31:38 +00:00
scw 08fb0e543b Pick the right bit to check... 2001-06-10 17:03:01 +00:00
scw 8aad61265b On 162 and up, get the CPU speed from the firmware and only fall back
to calculating it on the fly if the firmware's value is bogus.

This fixes problems caused by rounding errors on some board/speed
combinations.
2001-06-10 16:48:19 +00:00
scw aab2376d45 Refuse to boot on 162/172 and 167/177 if the user has not removed
the jumper which tells 1xx-Bug where to locate its scratch data.

Instead, print a message informing the user to RTFM (which needs to
be updated to include this info. ;-)
2001-06-10 16:45:52 +00:00
scw 89546c98a1 Enable DHCP and BOOTP as supported diskless NFS boot options. 2001-06-10 14:40:47 +00:00
scw 967e648941 Use the versions of dev_net.[ch] in libsa in order to get DHCP support.
In other words, mvme68k's "netboot" finally supports DHCP.
2001-06-10 14:12:48 +00:00
scw ea5249214a Add rnd(4) pseudo-device. 2001-06-10 13:16:07 +00:00
chs 821ec03ed9 replace vm_map{,_entry}_t with struct vm_map{,_entry} *. 2001-06-02 18:09:08 +00:00
scw 78aad8f79e Mark evcnt(9) item as done. 2001-06-01 08:31:07 +00:00
scw 59ba4788ce Deprecate intrcnt/intrnames in favour of the generic evcnt(9) interface. 2001-05-31 18:46:07 +00:00
lukem d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
scw 9c1aa86e46 One less item (MD siop driver is no more). 2001-05-29 08:20:42 +00:00
mrg 3783ca5d30 define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20:20 +00:00
scw d5c72b21e5 s/ncsrc/osiop.
While I'm here, ditch some excess baggage which is useless for
the RAMDISK kernel.
2001-05-28 18:39:45 +00:00
scw eb9637dd7e Add COMPAT_15 and comment out COMPAT_SUNOS. (It's hardly used and saves
a bit of space on low memory models).
2001-05-28 11:14:41 +00:00
chs 11a9651c8f replace vm_page_t with struct vm_page *. 2001-05-26 21:27:10 +00:00
chs 118ddca24a replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}. 2001-05-26 16:32:40 +00:00
scw c22fb1db55 Finally nobble the bus_dmamap_sync() problem with osiop(4).
Basically, bus_dmamap_sync() `PREREAD' needs to flush the cache
for the start and end of the region if it is not aligned to
a cacheline boundary, otherwise a subsequent POSTREAD can *purge*
valid data which was in the cacheline but *outside* the region
passed to bus_dmamap_sync().

Bus snooping doesn't always help here because osiop(4) calls
bus_dmamap_sync() with POSTREAD even if no data was actually
transferred! (And we can't rely on snooping on the 68060 models anyway).
2001-05-16 19:06:46 +00:00
scw 7e86548d5c doh, make the last fix compile for '147. 2001-05-13 18:35:19 +00:00
kleink ba6a8bf61e Update to reflect that unlike in m68k a.out environments, where the .align
directive is given a log2 argument, .align is given a linear argument in
m68k ELF environments.
2001-05-12 00:55:34 +00:00
scw e2177c7f71 Ensure the caches are flushed before changing the `cacheble' state
of a page.
2001-05-11 13:05:06 +00:00
scw 6ca2fd54c1 Take the offset and length into account inside bus_dmamap_sync().
(Inspired from the Atari version).

This fixes a problem seen with the new MI osiop driver.
2001-05-11 13:01:44 +00:00
scw 4d440b4035 G/C a printf which has moved to the MI code. 2001-05-03 19:03:53 +00:00
scw c038390035 Recognise `osiop' as a boot device. 2001-05-03 17:58:45 +00:00
scw 6d231d4107 Attach `osiop' at pcctwo instead of `ncrsc'. 2001-05-03 17:54:30 +00:00
scw adf7013d7f Match `osiop' instead of `ncrsc' now. 2001-05-01 07:33:29 +00:00
scw 813efd148a Don't panic in _bus_dmamap_sync() if a segment start address/length are
not aligned to a cacheline boundary.

Instead round down the start address, round up the length and "DTRT".
2001-05-01 07:32:51 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
scw ff4a29679f Switch to the MI 53c710 driver recently committed by Izumi Tsutsui. 2001-04-30 09:05:58 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
scw 81be7c00b7 Compute PAGER_MAP_SIZE at runtime to avoid needlessly crippling large-
memory models for the benefit of small-memory models.

Uses a heuristic of min(onboard_ram_size/2, 16MB).
2001-04-29 07:53:56 +00:00
scw 89e9fc44d5 Do the same as mac68k/pmap.c:1.70 to prevent wired pages being
removed by pmap_collect().
2001-04-29 07:41:58 +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
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej 7f10ba88b1 #define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
2001-04-21 23:51:14 +00:00
thorpej 15f731ee94 pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.
2001-04-21 17:25:01 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
scw 9beeeabe1b Define a PAGER_MAP_SIZE of 4MB for the benefit of low-memory models.
XXX: This may still not be low enough for models with less than 8MB RAM...
2001-04-14 16:02:24 +00:00
scw dd8c947561 Implement a real microtime() by reading the timer counter register.
On mvme147 this gives 6.25uS resolution, and 1uS on all other boards.
2001-04-14 13:53:05 +00:00
scw c605c91bdf Fix bootline argument passing from the Bug PROM. 2001-04-14 13:43:07 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
lukem 723cd818d8 move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00
soren 912c115675 s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message. 2001-03-21 18:40:28 +00:00
chs ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
scw bb17ec14d3 Conditionalise inclusion of opt_compat_svr4.h for the benefit of LKMs. 2001-03-13 18:47:19 +00:00
scw e4a4f09fa8 Make this compile again; chan_attn() prototype has changed. 2001-03-11 20:24:52 +00:00