Commit Graph

825 Commits

Author SHA1 Message Date
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
thorpej
2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
scw
23cf8fe52b Add a missing _ASM_LABEL() 2001-02-15 11:49:25 +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
scw
2c13177ff8 Create machine/m68k symlinks before trying to build the program. 2001-01-21 10:58:04 +00:00
tv
e58532a4bf No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
fvdl
c7f1462f3e Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
2001-01-17 00:07:18 +00:00
thorpej
d74e432ed3 Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
2001-01-15 20:19:50 +00:00
thorpej
45de366b2e Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>.  This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
2001-01-14 23:50:28 +00:00
thorpej
a3ec356d52 splimp() -> splvm() 2001-01-14 03:22:04 +00:00
thorpej
d85a75f583 Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
2001-01-14 02:00:37 +00:00
scw
65137701cf g/c the HP/UX core-dump code; it references a function which no longer exists. 2001-01-11 08:44:36 +00:00
dbj
e992baf394 fix logic error in bus_dmamap_sync that was preventing from flush/purging
full pages instead of only by cache lines
2000-12-26 07:27:01 +00:00
jdolecek
de31133f1d split off thread specific stuff from struct sigacts to struct sigctx, leaving
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.

XXX I wish m68k ports would share trap.c
2000-12-23 09:35:51 +00:00
scw
8336df62f7 Some small optimisations:
o Avoid checking cputype when the kernel is built for one cpu variant only.
 o In writeback(), don't use bcopy() to write a mere 16 bytes of 16-byte
   aligned data; it's much quicker to copy it inline.
2000-12-22 21:02:05 +00:00
scw
d11562c429 A couple of minor functions which return pointers need to do so in %a0 now.
Spotted by Chuck Silvers.
2000-12-22 20:57:21 +00:00
scw
00627955a1 Some minor optimisations to avoid checking {cpu,mmu}type when
the kernel was built for only one type of CPU.
2000-12-20 16:53:50 +00:00
scw
4350a7f2b7 Unification of the m68k syscall() function. 2000-12-19 21:09:54 +00:00
bouyer
c71f40d166 Add pseudo-device vlan 2000-12-19 10:42:02 +00:00
scw
e82303a96d s/MDECDIR/MDEC_DIR/ 2000-12-18 21:27:01 +00:00
jdolecek
cacec11253 delete obsolete comment 2000-12-17 15:52:39 +00:00
scw
5cabdd3709 Some snippets of documentation for mvme68k... 2000-12-14 20:30:14 +00:00
jdolecek
ca57e681bd g/c obsolete vtrace(2) stuff 2000-12-13 18:13:05 +00:00
scw
5d5ebb1b73 Simplify the reboot code:
Always jump through the PROM's reset vector, regardless of board type.
  Fix a stack offset problem in the mvme147 reset code path.
2000-12-10 20:00:21 +00:00
scw
8ace7abc75 A small splx()/spl0()/soft interrupt related optimisation. If we're
dropping to spl0, use inline code to check if a soft interrupt is
pending instead of taking the hit of a function call to do the check.
2000-12-10 18:43:02 +00:00
scw
c5b6f43634 Define splzs()' to be splserial()' instead of `spl4()', which was
wrong anyway since it blindly set SPL to 4 regardless of the prevailing
level.
2000-12-10 18:00:24 +00:00
scw
1a0a12c5b4 Bah. Somehow the a.out versions of the bootxx symbols got deleted; put
them back.
2000-12-09 22:33:24 +00:00
scw
a3dc741c03 Delete the commented out EXEC_ELF32 now that it's in std.mvme68k.
(Spotted by Simon Burge)
2000-12-09 21:02:09 +00:00
scw
3c748b810f Missed this one in yesterday's bootloader commits:
Change BUGCRT from bugcrt.o to bugstart.o.
2000-12-07 21:37:51 +00:00
scw
3f7cfb70ef Add "options COMPAT_AOUT_M68K". 2000-12-07 08:40:06 +00:00
scw
ac80517816 Add some #defines for offsets into the bugargs structure, and make the
register names usable within assembly code.
2000-12-05 21:57:13 +00:00
scw
86c7dac956 Replace the startup C code with assembler, which avoids having to
explicitly tell the compiler what registers the Bug args come in on.
2000-12-05 21:54:33 +00:00
scw
7da5cde117 bootxx doesn't need the code relocating stub linked in. 2000-12-05 21:51:38 +00:00
scw
634dc65636 Backout the last change; I'll deal with it another way. 2000-12-05 19:54:09 +00:00
scw
1f9f7cbe53 UPAGES -> 2 as recommended by Chuck Silvers. 2000-12-05 18:46:10 +00:00
scw
2ec144518f Add loadfile_machdep.h to list of installed machine headers. 2000-12-05 18:42:18 +00:00
scw
37f5782c0a Update pm_stats.resident_count when entering pages in the kernel pmap. 2000-12-05 16:07:39 +00:00
scw
bfcd71c79c Clean up the build process to ensure libsa/libbug are built
before linking the bootloaders.
2000-12-04 21:25:57 +00:00
scw
349445391c Make this work with the ELF tape bootloader. 2000-12-04 21:24:34 +00:00
scw
5a17a935bc Declare start' in addition to _start'. 2000-12-04 20:31:16 +00:00
scw
269a30a733 s/a6/fp/ again... 2000-12-04 18:48:18 +00:00
scw
e267f2466b Add support for ELF boot blocks. 2000-12-04 18:44:51 +00:00
scw
b29bcb645b The LOAD_TEXTA flag is required when loading a.out kernels.
Also add some non-standalone versions for the benefit of installboot(8).
2000-12-04 18:41:51 +00:00