Commit Graph

2281 Commits

Author SHA1 Message Date
thorpej b99d7572d6 Add some missing usb glue. 1999-09-01 00:05:01 +00:00
thorpej c068ef8152 Add `umass'. 1999-08-29 16:55:48 +00:00
ross 52a638cbe3 Fix minor type () bug. Fall thru correctly when the minor type is not known. 1999-08-23 22:29:41 +00:00
simonb 3c185af5fd Include <sys/endian.h> after defining whether where are little- or
big-endian.  i386, pc532 and vax still include <machine/byte_swap.h>
and define macros for the {n,h}to{h,n}*() functions.  mips also
defines some endian-independent assembly-code aliases for unaligned
memory accesses.
1999-08-21 05:53:50 +00:00
simonb 06a92524c2 Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
1999-08-21 05:39:51 +00:00
mjacob 9ed023d94e remove LIMITMEM code because it does not work anyway anymore 1999-08-19 21:31:43 +00:00
cgd b18820272a add bootxx_lfs 1999-08-18 21:34:24 +00:00
cgd a97b5505e4 add lfs support 1999-08-18 21:34:11 +00:00
cgd 82729b7302 add a makefile for an LFS primary 1999-08-18 20:02:39 +00:00
cgd 30d5d8a1e3 mention that putstr.c and putulong.c might want to be included when debugging 1999-08-18 20:01:06 +00:00
cgd b28ae57077 add a gross putulong() function which can be useful for debugging.
It's not normally included.
1999-08-18 20:00:27 +00:00
thorpej 0f7db9c21c Now that we have read/write spin locks, use them for the pmap_main_lock. 1999-08-17 18:48:22 +00:00
augustss db574ba708 Add umodem device. 1999-08-16 22:27:08 +00:00
thorpej 95755c54bb Pull in <machine/alpha_cpu.h>. 1999-08-16 06:24:07 +00:00
simonb 299578ebd5 Spell "privilege" correctly (correct spelling from Jonathan Stone). 1999-08-16 02:59:22 +00:00
thorpej f06d918d30 Protect userland from the vast majority of this file. 1999-08-15 18:32:51 +00:00
ross 4ed22602e7 In pmap_page_protect(), don't (try to) use the pv_entry_t we just
freed in order to find the pmap to unlock.
1999-08-14 06:19:49 +00:00
thorpej 6be04b7f5c Move cpu_info and related info into <machine/cpu.h>, and implement the
other MP API components discussed on tech-smp.
1999-08-10 23:35:43 +00:00
thorpej 28fb7c1eb8 Define cpu_number() as discussed on tech-smp. 1999-08-10 21:08:05 +00:00
thorpej b701be7c86 Use atomic operations to manipulate the SSIR, and fix a problem introduced
with the spllowersoftclock() changes where more interrupts than necessary
were blocked while software interrupts were being processed.
1999-08-10 18:53:03 +00:00
ross 70fad30289 In the kludges-on-top-of-kludges dept, print SWITCHING TO SERIAL CONSOLE
(but iff we started on the framebuffer) so the would-be installer doesn't
think everything just locked up.
1999-08-08 01:44:57 +00:00
ross c85f77e109 ifndef NEW_SCC_DRIVER, tell sccattach() if we are on a fb or serial cons 1999-08-08 01:40:20 +00:00
drochner f6f48ed7e7 clean up error handling in TC graphics console attachment: all functions
return 0 on success and an errno on failure
1999-08-07 12:58:27 +00:00
thorpej 333c98b6e2 Add the AdvanSys SCSI boards. 1999-08-07 07:40:40 +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
jdolecek 836c862c38 add file-system NTFS, commented out and marked as experimental 1999-08-05 15:51:36 +00:00
nisimura cb6ed03a59 - Replace device node names of zskbd/zsms into lkkbd/vsms, respectively.
No functionality was changed at this moment.
- Apply recent changes in GENERIC to TCWSCONS.
1999-08-04 07:17:50 +00:00
nisimura 50eca69f4e - A minimal patch work to make TCWSCONS useful with sfb/zskbd. 1999-08-03 05:30:56 +00:00
ross 02140cb46f Fix the 16-bytes-of-death bug by generating specific-EOI cycles during
sio_intr_setup().
1999-07-30 20:33:43 +00:00
augustss f641c4b3b6 Make two wsmux pseudo devices and add mux locators. 1999-07-29 19:36:58 +00:00
augustss 3652732791 Add wsmux device.
(Also add lots of missing chrtoblktbl[] entries.)
1999-07-29 19:14:35 +00:00
augustss a7cd454b1d It's time to be COMPAT_14. 1999-07-29 10:37:12 +00:00
thorpej 0f0a99bb48 Make sure that pmap == pmap_kernel() when skipping pager mappings. 1999-07-28 23:23:46 +00:00
thorpej c1ee8f0a8c Prepend `cpu_' to the machine-dependent atomic locking primitivies. 1999-07-27 21:45:39 +00:00
cgd f886376518 be more efficient when doing the SYSTEM_LD_TAIL for -g kernels: don't
copy them just to strip them, use strip -o.
1999-07-26 05:20:44 +00:00
ross 4d11d63612 Fix off-by-one comparison. 1999-07-12 07:37:14 +00:00
ross a8000e244c New signature for console_restart(). 1999-07-11 22:39:21 +00:00
ross 0f9e004fe3 Rewrite of console_restart() with constructed trapframe.
Extract various state elements from the per-cpu-slot in hwrpb.
1999-07-11 22:37:12 +00:00
ross f9e083d969 * Set up a trapframe before calling console_restart(), and just pass it the
frame instead of a selection from the saved state.
* new macros:   bfalse reg, dst		/* "beq" */
		btrue reg, dst		/* "bne" */
1999-07-11 22:35:28 +00:00
ross 6eb6441a68 * Big rototill: cleanup, reorganize, redo some things...
* New features:
	+ traceback for threads (i.e., pids):  db>trace/t 0t<pid>
	+ traceback over console restart (halt and SRM continue)
	+ print ipl in trapframes when it's known and it changed
	+ print emulation and system call entry name (!) if proc is known
	   --- syscall (240, netbsd.sys_nanosleep) ---
1999-07-11 22:28:15 +00:00
thorpej 0945bf58b0 Add examples for including the kernel crypto bits from either crypto-us
or crypto-intl, commented out, with instructions to use only one, and
adjust the prefix as necessary.
1999-07-09 18:55:33 +00:00
mrg ecdad0ec33 clean up a bit after jason :)
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
  would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
  $INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.

this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
1999-07-09 09:52:55 +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
thorpej 7b3258b6a7 Make the kthread API a bit more friendly to loadable kernel modules. 1999-07-06 21:44:09 +00:00
thorpej 43e7ebad4c Const poison local printf() prototype. 1999-07-01 20:11:39 +00:00
itojun 5effafcaa6 kernel configuration for IPv6/IPsec. should be in GENERIC in the future.
(source code will be committed soon)
1999-07-01 07:00:12 +00:00
ross ced3118f58 * sprintf -> snprintf
* add a few alpha_mb() ops as called for by folklore and rumour
1999-06-29 17:10:57 +00:00
ross cf1ca54803 Minor Tsunami-related changes. 1999-06-29 07:22:25 +00:00
ross 6068f64d34 * If the cpu_model string contains some form of MHz , don't print
the rpb field also.
* Add dot_conv(), hex format conversion for long hex digit strings.
1999-06-29 07:21:30 +00:00
ross 10f1f2d81f Prototype dot_conv(), new routine in machdep.c that formats an alpha
long like this: e081.8000.8000.0004
1999-06-29 07:18:23 +00:00
ross 724273c3c0 System support for ev6 (21264) systems. 1999-06-29 07:08:53 +00:00
ross b0947ec27d Turn on EV6 bits: Tsunami and system type 6600. 1999-06-29 07:04:15 +00:00
ross 3714f3754f Turn on dec_6600_init, "DEC_6600". 1999-06-29 06:50:41 +00:00
ross 0f707bdb06 Identify the various ev6 pass numbers.
Also print the raw pass number rpb value as, say, `21264-4', like SRM does.
1999-06-29 06:49:36 +00:00
ross 7a27e79bff Support for EV6 Tsunami core logic and system type 6600.
This covers most or all of the presently-available 21264 systems.
1999-06-29 06:46:46 +00:00
itojun 427639cdce - Call ip6intr if INET6 is defined.
- remove "need-flag" for mac68k esp driver, as it is not used in anywhere
  and conflicts with IPsec ESP header.

This should be the only MD change in IPv6 support, except kernel config file.
Very sorry if you have any compilation problem with it (I believe it is okay).
If your favorite arch is not included in here, please add a
call to ip6intr() from softintr handle.
1999-06-28 08:20:40 +00:00
christos dfa695b9a7 Add missing phy's 1999-06-27 22:35:56 +00:00
christos ce110dd283 Add missing phy's. Increase miniroot size 1999-06-27 22:35:43 +00:00
christos 4440b677e2 add vr* at pci?, sort 1999-06-27 15:58:18 +00:00
thorpej c52d839a6e Nuke some code ripe for garbage-collection. 1999-06-26 03:15:54 +00:00
thorpej 43ddb951ea Whitespace police. 1999-06-18 18:11:56 +00:00
thorpej 471cb34fb2 Fix a harmless typo. 1999-06-18 18:08:52 +00:00
cgd 7c02d93c04 nuke current definitions provided by __BUS_SPACE_COMPAT_OLDDEFS.
I'll do what I can to make new ones soon.  8-)
1999-06-18 04:49:24 +00:00
thorpej 0288ffb53a pmap_change_wiring() -> pmap_unwire(). 1999-06-17 19:23:20 +00:00
thorpej f5a527bb4e Remove pmap_pageable(); no pmap implements it, and it is not really useful,
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.
1999-06-17 18:21:21 +00:00
cgd e33c6c47a2 set bb_flags to zero; who knows what they were (on disk) previously,
and SRM is finicky about what values it will allow.
1999-06-14 23:55:29 +00:00
cgd b6e1d0f85a set bb_flags to 0. Though not strictly necessary (because of an earlier
memset()), this is nice for source-level consistency.
1999-06-14 23:52:25 +00:00
thorpej 2c35c7bd03 Only declare block major numbers for devices which can be the root device. 1999-06-07 20:31:27 +00:00
thorpej d76e7b8c6d Don't pass a nam2blk around at all; just have setroot() and friends reference
dev_name2blk[] directly.  Addresses PR #7622 (ITOH Yasufumi), although
in a different way.
1999-06-07 20:16:08 +00:00
dante a775803f91 Add adv* entry under ISA devices 1999-06-06 17:57:23 +00:00
ross a1c15a355d In PMAP_ISACTIVE(), check curproc->p_vmspace before using it; this macro
is called early in startup, long before p_vmspace is set to &vmspace0.
1999-05-31 20:49:00 +00:00
ross 4313734913 After some banging and bashing, commit Jason's new ddb traceback code. 1999-05-31 20:42:15 +00:00
ross 604d4df11e Convert to traceback-friendly temporary labels. 1999-05-31 20:40:23 +00:00
ross ffc59b8bad Be less drastic when running strip(1) on DEBUG=-g kernels. 1999-05-31 18:54:49 +00:00
ross 6b3d12f44a Calculate what sp would have been and save it in otherwise-unused
FRAME_SP slot if entering ddb.
1999-05-31 06:41:39 +00:00
ross d3df2008f1 Fix generation of locore.s dependencies. 1999-05-31 02:46:17 +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
cgd 5dd4815be9 uh, get the port name consistently correct (NetBSD/alpha, not NetBSD/Alpha) 1999-05-26 06:22:03 +00:00
thorpej 32de988d29 No longer need to pmap_emulate_reference() in cpu_fork() or cpu_swapin(),
since uvm_fault_wire() does the right thing with access_type.
1999-05-26 00:37:40 +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
thorpej 986c3eca39 Fix some major locking protocol issues related to pmap_kremove() having
to deal with PG_PVLIST mappings; it no longer has to.  Add some DIAGNOSTIC
checks for inconsistent use of pmap_enter/pmap_kremove.
1999-05-25 20:32:29 +00:00
thorpej 5dec34efed The kernel pmap can be accessed (and locked!) while in an interrupt
context, so we must block interrupts which may cause memory allocation
before asserting the kernel pmap's lock.  Put this all in PMAP_LOCK()
and PMAP_UNLOCK() macros to make it easier.
1999-05-24 20:11:58 +00:00
thorpej 8c2d5c6fd3 Let the caller decide what to do if pmap_physpage_alloc() fails. 1999-05-24 01:35:54 +00:00
thorpej c1eb28c237 Make the list of all pmaps LRU-ordered, and update a comment regarding
locking.
1999-05-23 22:37:02 +00:00
thorpej 2102d5a17e Save ourselves some work in some pv list traversal functions; keep a pointer
to the PTE that maps the page in the pv_entry so that we don't have to
compute it from the pmap/va.
1999-05-23 17:49:07 +00:00
thorpej 5d48eed96a Implement pv_entry stealing for the case when a pool page cannot be
allocated for one.
1999-05-23 16:54:43 +00:00
thorpej 66324de865 Use the pool allocator for pv_entry structures. Set a (patchable/config'able)
low water mark on the pool, so we have some chance of crawling along in
extreme memory shortages.
1999-05-21 23:07:59 +00:00
thorpej a07ba7d1c1 Update the calls to allocsys(). 1999-05-21 00:09:09 +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
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
thorpej 9410ed17c1 Count new resident and wired pages in pmap_kenter*(). 1999-05-17 16:22:57 +00:00
thorpej 7e68ddd393 Update the comments above vmapbuf() and vunmapbuf() to reflect reality. 1999-05-16 22:24:16 +00:00
thorpej c10a926030 Allow the caller to specify a stack for the child process. If NULL,
the child inherits the stack pointer from the parent (traditional
behavior).  Like the signal stack, the stack area is secified as
a low address and a size; machine-dependent code accounts for stack
direction.

This is required for clone(2).
1999-05-13 21:58:32 +00:00
cgd e9da918f1b add some more bits, mostly stubs 1999-05-11 00:04:52 +00:00
cgd b0f5f854e4 have to take care to have a valid SP value in the unaligned fixup and
opdec (emulation) handlers.
1999-05-10 01:27:28 +00:00
cgd 9b9842a28b handle unaligned ldwu/stw instructions. While there, fix a bug in the
unaligned access handler and clean it up some.  Add support for emulating
the BWX instructions (ld{b,w}u, st{b,w}, sext{b,w}), which user software
can expect to be emulated.  (Thanks, Alpha Architecture!)
1999-05-09 19:43:58 +00:00
cgd 75f1157922 convert to DEC-style register names (but not yet done for
the internal PALcode instruction format structure).
1999-05-09 19:40:00 +00:00
cgd 79c181f2e2 convert to DEC-style register names. 1999-05-09 19:39:13 +00:00
cgd c8cf931f56 convert to DEC-style register names. the attempt to use function-based
register names was confusing, and could not _be_ correct in some cases.
Also, add a couple of 'generic' instruction formats which should be used
when decoding instructions before the specific format is known.
1999-05-09 19:38:59 +00:00
drochner fe310dd299 include <lib/libkern/libkern.h> for intoa()/inet_ntoa() 1999-05-07 16:19:27 +00:00
christos c596c324e3 Define __builtin_*() for lint 1999-05-03 16:30:31 +00:00
cgd 34fde29505 update comment re: COMPAT_OSF1 1999-04-30 23:34:08 +00:00
cgd f6b3b14ce3 enable COMPAT_OSF1 1999-04-30 23:33:41 +00:00
cgd ff48595e8b processes would have vm->vm_ssize screwed up when they faulted
data regions higher than USRSTACK.
1999-04-30 20:21:57 +00:00
cgd 1a3537df95 OSF/1 locore-ish bits. right now just sigcode 1999-04-30 05:58:10 +00:00
cgd 04f53f0b03 gross hack for SIGFPE under OSF/1, until ross makes SW completion go 1999-04-30 05:47:53 +00:00
ross c5a82dd848 * New MI man page for fp{set,get}{round,sticky,mask}(3).
* Implement fpgetsticky() for alpha.
* Direct fpsetsticky() and fp{get,set}mask() into alpha kernel via sysarch(2).
* Define new sysarch(2) stub for above and install and distribute sysarch.h
for alpha.  (The fpcr IS user mode r/w, but for reasons beyond the scope
of a commit message kernel calls are needed.) And much kernel Magick is
required before these do anything, but this way programs compiled under
1.4 will DTRT on future snapshots and releases.
1999-04-30 00:58:30 +00:00
ross 7288a55336 Use a different initial FPCR, mainly to suppress the ieee inexact trap. 1999-04-29 03:02:20 +00:00
ross 0847df9065 #ifdef _KERNEL, define the machine FPCR bits and a rounding mode macro 1999-04-29 02:55:50 +00:00
ross aa1e5724b9 WSEMUL_SUN -> WSEMUL_VT100 1999-04-29 01:28:40 +00:00
cgd 7b8e7abdd6 use osf1_exec_ecoff_hook() 1999-04-27 02:33:35 +00:00
cgd 6f2f5becb6 Alpha ECOFF object type definitions 1999-04-27 02:32:33 +00:00
ross f868468aaa Never used, and work-in-progress uses a different header. 1999-04-25 20:15:06 +00:00
simonb 5d8b1ef3e4 g/c REAL_CLISTS. 1999-04-25 02:56:26 +00:00
ross 28ef22871e Copy isdn4bsd cdevsw hooks from i386 conf.c. 1999-04-24 17:01:15 +00:00
cgd 575e9f8dfd support emulation-specified errno mapping tables 1999-04-23 05:43:02 +00:00
ross be000bc016 Revert 1/2 of previous change. INSECURE is still OK for alpha. 1999-04-20 21:43:03 +00:00
thorpej f7b0fea081 After reviewing the Green Book, BPT traps do indeed leave the PC pointing
to the instruction _after_ the `call_pal bpt' instruction.
1999-04-20 21:30:15 +00:00
thorpej 375b3fa699 Prototype alpha_debug(), and add some definitions for KGDB. 1999-04-20 21:23:56 +00:00
thorpej 62d09f4f93 Move the inclusion of <machine/bus.h> to within a _KERNEL section. 1999-04-20 21:23:09 +00:00
thorpej 869951571d - Clean up ddb_trap() somewhat, and handle exceptions that happen while we're
in DDB (e.g. if a bad pointer was dereferenced; the debugger will recover).
- Change a comment to indicate that we are on the debugger stack when we get
  to ddb_trap().
- Fix possible buglet in computation of the branch target in db_branch_taken().
1999-04-20 21:19:48 +00:00
thorpej 701edb8db8 - Revert previous, and do debugger entry if kernel BUGCHK or BPT traps
happen.  If the debugger doesn't handle the trap, arrange things so the
  debugger won't be called again before we panic.
- Before panic'ing, give the debugger a chance to field the trap, and
  if the debugger has handled things, allow the kernel to continue running,
  like the i386 port does.
1999-04-20 21:16:59 +00:00
thorpej a12dedc3ea - Revert previous change to XentIF(), now that we're going to enter the
debugger differently.
- Pull in debugger glue if DDB is configured.

And one unrelated change, while I was here: Don't create a fake trapframe
for main(); it hasn't been used by main() for quite some time, and panic
if main() returns, because that's not supposed to happen now.
1999-04-20 21:11:59 +00:00
thorpej 1b2eac076f Add a common debugger entry point, alpha_debug(), which performs various
tasks (i.e. switches to the debug stack) and then invokes the appropriate
debugger (DDB or eventually KGDB).
1999-04-20 21:09:49 +00:00
thorpej 9d78593b30 Back out previous; we're going to dispatch to the debugger differently. 1999-04-20 21:08:23 +00:00
ross 702267a538 options INSECURE, like i386
pckbc* -> pckbc0, like i386
1999-04-20 06:16:35 +00:00
thorpej f30375cda0 Dispatch to the debugger from the Intruction Fault trap vector directly,
rather than doing it from trap().  This so we can switch to a temporary
stack for the debugger (in a forthcoming commit).
1999-04-19 23:24:14 +00:00
thorpej d24359e5c8 Define BPT and BUGCHK Intruction Fault codes. 1999-04-19 23:22:19 +00:00
drochner 7694cc18a5 wsconsio.h is gone 1999-04-17 13:00:04 +00:00
thorpej 3b29e1e158 Clean up the Rawhide interrupt code some more:
- Actually display the kn300 irq, not the MCPCIA irq, in the interrupt
  string.  Also, don't bother displaying device/pin on strays, since
  it doesn't play will with shared interrupts that would happen due to
  a PCI-PCI bridge.
- Shave a few more cycles out of the interrupt dispatch routine.
1999-04-16 21:29:47 +00:00
ross 74de38f9a9 Really say goodbye to old wscons. 1999-04-16 07:24:13 +00:00
thorpej d38cab08e5 Add SGMAP stuff for Window 2, and rename Window 0's SGMAP stuff to indicate
its use.
1999-04-16 02:18:07 +00:00
thorpej 1ddebc8444 Fix a silly bug present since rev 1.1; the direct-mapped window is
supposed to be Window 1, but a cut'n'paste error made it stomp over
Window 0, thus breaking ISA DMA.  Fix this.  (Confirmed to work with
floppy driver.)

While I'm here, do something I've been meaning to do for a while: change
Window 1 from a 1G at 2G to a 2G at 2G direct-mapped window, and add
a Window 2 of 1G at 1G SGMAP-mapped.  Chain Window 2 to Window 1, and
use it as a fall-back for PCI DMA if the system has more than 2G of RAM.
1999-04-15 23:47:52 +00:00
thorpej 31c4e50d3a - Change the "savunit[]" and "savirqs[]" arrays to ints, rather than chars.
The access is more efficient this way (and this was done in the interrupt
  dispatch code, so some cycles are actually shaved), and gcc gets annoyed
  when chars are used as array subscripts.
- Adjust for the fixed Rawhide console initialization.
- When mapping a PCI interrupt, don't always map device 1 to IRQ 16.  Device
  1 is only the internal 53c810 on MID 5, and is an invalid device number
  on any other MID.
- Adjust for change mcpcia_config/mcpcia_softc structures.
- Nuke the kludgy linked list of mcpcia_softc structures.  Instead, just
  use savunit[v] to index into mcpcia_cd.cd_devs[] to find the MCPCIA
  which has the stray interrupt.
- Some other minor cosmetic cleanup.
1999-04-15 22:37:25 +00:00
thorpej 592cdd4bda Adjust for new register access arguments, and make one slight cosmetic
change.
1999-04-15 22:32:21 +00:00
thorpej f2368c1301 CHIP_EX_MALLOC_SAFE() now must pay attention in class. 1999-04-15 22:31:16 +00:00
thorpej 279f30928f Add support for a single statically-allocated MCPCIA configuration structure,
which holds state of the MCPCIA to which the console is attached.

- All MCPCIA info is now stored in the mcpcia_config structure; the
  mcpcia_softc only contains a struct device and a pointer to one of these.
- If attaching the console MCPCIA, use the static configuration, else allocate
  the substructure.
- Rename mcpcia_init() to mcpcia_init0(), and make it take a "mallocsafe"
  argument.
- Implement a new mcpcia_init(), which looks for the MCPCIA which has the
  EISA bridge attached.  Initialize this MCPCIA as the console MCPCIA (the
  console on the Rawhide is only allowed on this MCPCIA; firmware rule).
- Eliminate the kludgy linked listed of mcpcia_softcs.  Just use mcpcia_cd
  to find all configured instances.

Separate bug fix: Actually clear the MCPCIA error mask after probing for
PCI (and ISA) devices, don't just clear it twice in mcpcia_init0().

Some other slight cleanup.
1999-04-15 22:27:40 +00:00
thorpej 9af474a62c - Add a comment explaining why we probe for MCPCIAs in the shuffled
MID order.
- Export the shuffled MID order; other files now need it.
- Don't derive the GID from the unit number of the mcbus.  A user could
  render his kernel non-bootable by using a different unit number in the
  kernel config file.  We (and the hardware) only support one MCBUS, so
  simply use instance 0.  Note that this will need to be adjusted if there
  are even any multiple-MCBUS systems.
1999-04-15 22:19:52 +00:00
thorpej 9a4a0a3c81 DEC_KN300 no longer uses PROM console. 1999-04-15 22:15:38 +00:00
thorpej 1287bb8599 Always call the platform's cons_init routine (note, it may not do anything,
but it's a very handy place to put console-related debugging code in,
even if we're still using the PROM console).
1999-04-15 22:15:05 +00:00
thorpej f3314e93e8 Add an empty dec_kn8ae_cons_init(). 1999-04-15 22:13:41 +00:00
thorpej 02aa04c89e Massive cleanup of the AlphaServer 4100 console initialization code.
Instead of using the PROM console until autoconfiguration is complete (at
which time we called dec_kn300_cons_init() directly!), make this work like
basically all of the other systems which have PCI attached consoles.  That
is, initialize the PCI chipset which holds the console early, and perform
console initialization at the correct time.

This should make both PCI and ISA display consoles with PC keyboards work
(i.e. the deskside workstation version of the Rawhide).
1999-04-15 22:11:57 +00:00
thorpej 0df038ccb1 - Use the CTB_TURBOSLOT_* macros from rpb.h.
- Don't assume bus/slot == ISA display.  Instead, test for TYPE_ISA.
- Some cosmetic (whitespace, mostly) cleanup.
1999-04-15 22:06:47 +00:00
thorpej f03f59a5b8 Back out the change to swap Lev1map on MP systems that use the PROM console.
Basically, we have to completely nuke the _PMAP_USES_PROM_CONSOLE code from
orbit before MP is going to properly work.
1999-04-15 21:21:25 +00:00
thorpej e8e6061642 Slight braino in previous. 1999-04-14 23:55:35 +00:00
thorpej 25a0e78bf3 Add macros to decode the `turboslot' member of the Console Terminal Block. 1999-04-14 23:28:31 +00:00
pk b13e5d1469 Quote "AS IS" as in the majority of Carnegy Mellon notices. 1999-04-12 20:38:17 +00:00
chs f455dd6596 add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
1999-04-11 04:04:04 +00:00
cgd 050a43f655 start on a glorified system-examination console program. 1999-04-11 03:38:51 +00:00
cgd 7f28b25d23 add support for 'standalone programs', like kernels but not the kernel. 1999-04-11 03:36:21 +00:00
cgd 13fcfc2aeb only conditionally set BINDIR to /usr/mdec 1999-04-11 02:51:21 +00:00
cgd 6d0fadbd19 be more consistent about use of 'cputype'. e.g. it's in a header, don't
bother 'externing' it everywhere!
1999-04-10 01:21:36 +00:00
cgd f262e02775 constify bootprog_*, move their definitions into common.h, and have
the generated vers.c include common.h to check against definitions.
1999-04-09 17:50:15 +00:00
thorpej e468d4c8d9 Fix a bug in TBI optimization uncovered by the "access_type" changes. Thanks
to Bernd Ernesti for providing crash dumps to Charles Hannum who tracked
it down.
1999-04-09 00:38:10 +00:00
cgd 587e1ba75e save 4.3 bytes on the date string! 4 == day of week plus space,
.3 == a space on days of the month 1-9.
1999-04-07 06:30:34 +00:00
pk c40eb1cd97 Fix a pasto in copyright text which has been procreating like rabbits.. 1999-04-06 20:09:18 +00:00
pk 23c3e1a4a1 Fix garbled words in copyright statement. 1999-04-06 19:26:32 +00:00
cgd ff54a19cef build/install this binary as bootxx.old, so that users won't get the
idea that they should be using it.  (no point in renaming the whole
directory since it should be dead soon enough.)
1999-04-06 18:43:18 +00:00
cgd 1fddfb80a5 consistency in boot message printouts 1999-04-05 22:03:56 +00:00
cgd 54b5d8e275 always -D NETBSD_VERS 1999-04-05 22:03:48 +00:00
cgd ba10f0ca12 now that boot.c does the bootstrap name with a -D, the newvers scripts
are all the same, so eliminate the redundancy.  also, use mrg's
"Version:" trick to find the version rather than using the RCS ID.
(I must have been having a ... bad day.)  Also, bump boot and netboot
versions for all the changes that have been happening lately.
1999-04-05 06:56:23 +00:00
cgd d4e15df542 don't get the name from newvers, get it from a bootstrap-specific -D
in the Makefile.  also, print the banner before we do things that
might cause us to print error messages.
1999-04-05 06:42:14 +00:00
cgd d430800515 GC all support except contiguous block mode. the new installboot
takes care of it all better.
1999-04-05 05:48:12 +00:00
cgd f8eb5f4b98 trim off unnecessary bits 1999-04-05 05:07:04 +00:00
cgd b774b1837d fix disk write size check 1999-04-05 05:01:44 +00:00
cgd ebca60d395 come a little closer to compiling with warnings turned on 1999-04-05 04:39:42 +00:00
cgd ae79d52642 i was fooling myself to believe that these would build with all warnings 1999-04-05 04:38:27 +00:00
cgd f8fcd4d2be -I goes in CPPFLAGS, not CFLAGS 1999-04-05 03:42:50 +00:00
cgd bf165cb8fc install bootxx_cd9660 and bootxx_ffs 1999-04-05 03:37:28 +00:00
cgd 6603c44a84 reorganize Makefiles so that warning flags aren't accidentally omitted,
and so that all programs and boot blocks are built.
1999-04-05 03:35:24 +00:00
cgd a50cfa8576 add a new from-scratch (actually, from mkbootimage, but that's close
enough) implementation of installboot(8) which installs the new file
system specific boot blocks.
1999-04-05 03:07:37 +00:00
cgd 180d6f8b19 Moved to sys/arch/alpha/stand/installboot.old/installboot.c,v 1999-04-05 03:02:07 +00:00
cgd b76e58f09c Moved from sys/arch/alpha/stand/installboot/installboot.c,v 1999-04-05 03:02:06 +00:00
cgd 80eba52649 Moved to sys/arch/alpha/stand/installboot.old/extern.h,v 1999-04-05 03:02:05 +00:00
cgd acb2102a7c Moved from sys/arch/alpha/stand/installboot/extern.h,v 1999-04-05 03:02:04 +00:00
cgd 5549a89389 Moved to sys/arch/alpha/stand/installboot.old/cd9660.c,v 1999-04-05 03:02:03 +00:00
cgd 2e3c73533f Moved from sys/arch/alpha/stand/installboot/cd9660.c,v 1999-04-05 03:02:02 +00:00
cgd 84d60a245d Moved to sys/arch/alpha/stand/installboot.old/Makefile,v 1999-04-05 03:02:01 +00:00
cgd 5863b697a0 Moved from sys/arch/alpha/stand/installboot/Makefile,v 1999-04-05 03:02:00 +00:00
cgd 6ab8a12347 clean up, use disklabel.h boot block checksum macro, exit with
EXIT_SUCCESS and EXIT_FAILURE rather than 0 and 1.
1999-04-05 02:56:33 +00:00
cgd eb5c725722 clean up for compiler warning flags 1999-04-05 02:55:38 +00:00
cgd 7a2f0695dd clean up slightly, do a little #define trick to make checksumming
the boot block a little easier/more 'clean', and provide a macro to
checksum the boot block.
1999-04-05 02:45:47 +00:00
cgd 4cbbc316f2 add ustarboot, a ustar-capable unified bootstrap intended to be
mkbootimage'd and slapped on the front of a tar file.
1999-04-02 09:13:27 +00:00
cgd e16ad7a3e4 this should have been gc'd with the disk->blkdev changes 1999-04-02 08:50:45 +00:00
cgd b676fcfeca add mkbootimage, a program to make a bootable image (i.e. prepend a boot
block, pad to a block boundary) from a console program (i.e. a boot
block, firmware upgrade executable, etc.)
1999-04-02 08:40:23 +00:00
ross 8969ff9e1e Fix typo in FILE_FORMAT_CPPFLAGS. 1999-04-02 07:55:06 +00:00
cgd bfa2f241f4 use 'struct boot_block' from disklabel.h 1999-04-02 07:34:49 +00:00
cgd 5d472dba93 define 'struct boot_block' which is the alpha (SRM) boot block 1999-04-02 07:32:33 +00:00
cgd bfd7402544 use booted_dev_fd() and booted_dev_close() 1999-04-02 03:50:47 +00:00
cgd bacc33029f build the filesystem-specific primaries 1999-04-02 03:45:12 +00:00
cgd 60fb889b92 makefiles for some filesystem-using primary boot blocks. much as
i hate to say it, these still contain bugs that can't easily be
addressed yet.
1999-04-02 03:38:20 +00:00
cgd 6db093b04a puts -> putstr 1999-04-02 03:35:54 +00:00
cgd 3b5c2ed522 a makefile template for filesystem-using primary boot blocks 1999-04-02 03:34:09 +00:00
cgd 47acf988d7 add a template for a filesystem-using primary boot block, just like
'boot' is a template for secondary and unified boot blocks.
1999-04-02 03:24:53 +00:00
cgd 1fe5f90d85 add a common putstr() function which just puts()'s the chars in
its argument string.  implement a broken version of panic() in terms
of it, for cases where we need panic() but can't affort printf().
1999-04-02 03:23:49 +00:00
cgd e1b1b6b39b update for booted_dev and disk->blkdev changes. 1999-04-02 03:20:00 +00:00
cgd f0bdf50326 abstract the prom device open/close into a separate module, which
provides the correct functions for primary, secondary, and unified
boot blocks.  actually behave correctly (e.g. expect correct arguments,
perform correct operations) depending on which you are.  also
some minor cleanup.
1999-04-02 03:19:08 +00:00
cgd 39ea91226c move the boot/disk.* code to common/blkdev.*, and gut it. The previous
guts were actually functionally equivalent to the current guts, but were
much larger, filled with bugs, and indeed poked around at the disklabel
when some of those bugs prevented them from ever using the disklabel!
1999-04-02 03:17:28 +00:00
cgd 7c4cd2bb56 unrevert the changes made last night, now that 'installboot' has
had a few bugs fixed that let the problem slip in, and since bootxx's
Makefile now goes out of its way to satisfy installboot's undocumented
and totally unreasonable assumptions about the bootxx file it's operating
on.  No point in fixing the assumptions, because sooner rather than later
this incarnation of installboot is going to die.
1999-04-02 03:11:57 +00:00
cgd 701c007366 correctly calculate the space left for block addresses, and avoid
assuming that there's always going to be space for the whole boot
block info struct.  (the assumption would cause a malloc'd region
to be overrun, if it proved false.)
1999-04-02 02:47:45 +00:00
ross 9c323a2d8b Revert recent changes, which either don't work, or can't be built
successfully by ordinary mortals.
1999-04-01 11:08:39 +00:00
thorpej 967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
cgd bd44d9c286 as pointed out by simonb, since we've moved to ELF __main() calls
aren't emittid anymore.
1999-03-31 16:12:51 +00:00
mycroft 83cb600015 Enable rnd. 1999-03-31 14:29:33 +00:00
cgd 801906b363 GC; unused 1999-03-31 06:37:13 +00:00
cgd be6a1d529a separate defns for primary and unified boot blocks 1999-03-31 06:28:41 +00:00
cgd 77a9cb81ff implement NO_GETCHAR, to remove getchar(), and NO_PUTCHAR_HALT to remove
the check in putchar() for character input (specifically control-c, which
causes a halt).
1999-03-31 03:34:21 +00:00
cgd c5fa912232 no point in passing &ret to test_getchar(); nobody cares! also, no
point in doing the check-for-abort functionality twice in putchar()
(once with a call to test_getchar(), once open coded).
1999-03-31 03:22:57 +00:00
cgd 98f67b8238 In putchar(), don't open-code two calls to the prom puts routine. Instead,
call a helper function (putonechar()).  Savings: 64 bytes.  Cha-ching!
1999-03-31 03:10:00 +00:00
cgd 3665d82d1a GC cpu_number() and turn alpha_pal_imb() into inline assembler. 1999-03-31 03:04:21 +00:00
cgd 51a85dabbb rename the C main() function to main_(). this avoids gcc's implicit
call to __main(), and therefore saves the size of the call and the
  size of a stub implementation of __main().
in the primary boot block, don't bother saving/restoring the argument
  passed in from the caller.  There is no such argument (that we care
  about, at least) to the primary.  (for secondary, it's the firmware
  FD being used.)
1999-03-31 03:03:01 +00:00
cgd 4a209e30f8 Compile with -Os (optimize for size).
Clean up the "Region 1" related definitions, and define load addresses,
  max load size, and max total size for as many boot block types as we can.
  (types = unified, primary, secondary).  We can't always define all
  values for all boot blocks, though.
Make CPP flags selection less gross.
Use objcopy rather than headersize (yay, evil gets a stake to the heart!).
Use a little shell script to verify that the sizes of the boot blocks are OK.
Do not compile too much more of libsa than we actually have to.
1999-03-31 02:52:11 +00:00
mycroft d05df6042f Add mpu at isapnp, currently commented out. 1999-03-29 06:16:34 +00:00
mycroft e3c8daf920 Panic if access_type has bits not in prot. 1999-03-29 05:31:24 +00:00
drochner 31a77e61b3 Leave out display console related bits if wscons is not compiled in.
Should fix link error reported by Kevin <kev@drule.org>.
1999-03-28 13:48:40 +00:00
drochner a17279574e alpha uses the mi wscons; remove the old bits 1999-03-27 17:36:30 +00:00
ross 5bc91073ce Bug fix for the bug fix. Be sure to prom_close() in bootxx and boot, but not
in netboot, and not in diskclose(), but after trying all kernelnames[].
1999-03-27 09:01:27 +00:00
thorpej b69d0d9e89 Pay attention to "access_type" in pmap_enter(). 1999-03-27 02:48:32 +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
ross 6ee909b24f Fix bug found by Bernd "Veego" Ernesti: close the console disk channel. 1999-03-26 20:53:12 +00:00
thorpej 567cda0537 Don't bother allocating mb_map on these systems. Mbuf clusters are
allocated from a pool, and the MIPS and Alpha use KSEG to map pool
pages.  So, mb_map wasn't actually being used.  Saves around 4MB of
kernel virtual address space in a typical configuration.

Garbage-collect the related VM_MBUF_SIZE constant.
1999-03-26 00:15:04 +00:00
mrg ca5f9685bb clean up kernel/config files files for machVM lossage. 1999-03-24 06:06:09 +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
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
ross be177a7fd4 PCI: +bha
+en
	+ex
	+fxp
	+le
	+pcscp
MII:	+exphy
EISA:	+ahb
	+uha
1999-03-22 09:19:57 +00:00
ross 60fe60deaa Enable fuword(9), fuiword(9). 1999-03-22 09:17:11 +00:00
mycroft df7eadf2d6 More PnP/audio goo. Need an Alpha joystick driver. B-) 1999-03-22 07:55:14 +00:00
mycroft 8e621ce2ee Add MIDI and sequencer devices. They seem to work, even. 1999-03-22 07:52:56 +00:00
thorpej a77ccfe460 Garbage-collect. 1999-03-20 01:40:25 +00:00
cgd 10af862bf7 move isa/isa_machdep.h to include/isa_machdep.h. (can't do it via
repository copy because alpha already had an include/isa_machdep.h in
the attic.)
1999-03-19 05:04:42 +00:00
cgd 8e85aac1ce move pci/pci_machdep.h to include/pci_machdep.h. (can't do it via
repository copy because alpha already had an include/pci_machdep.h in
the attic.)
1999-03-19 03:40:46 +00:00
cgd 08eb14f874 Moved to arch/alpha/include/isapnp_machdep.h,v 1999-03-19 03:14:06 +00:00
cgd 0d0fd78b4e Moved from arch/alpha/isa/isapnp_machdep.h,v 1999-03-19 03:14:05 +00:00
cgd e962a59308 move tc/tc_machdep.h to include/tc_machdep.h. (can't do it via
repository copy because alpha already had an include/tc_machdep.h in
the attic.)
1999-03-19 03:12:31 +00:00
cgd 88590a9cd1 move eisa/eisa_machdep.h to include/eisa_machdep.h. (can't do it via
repository copy because alpha already had an include/eisa_machdep.h in
the attic.)
1999-03-19 02:59:49 +00:00
chs ab7269f62a if uvm_fault() fails with KERN_RESOURCE_SHORTAGE, send a SIGKILL
and print a message about it.  this will be used to recover from
out-of-swap conditions.
1999-03-18 04:56:01 +00:00
drochner 04df246f03 identify ST_DEC_6600 (EV6) - as unsupported :-( 1999-03-17 19:00:01 +00:00
sommerfe bc533621ed defopt MINIROOTSIZE 1999-03-17 18:59:21 +00:00
drochner 597bc445b1 add ST_DEC_6600, clean up some comments 1999-03-17 18:58:51 +00:00
ross 1ae12eef5a g/c proto 1999-03-17 18:28:11 +00:00
ross f10b320472 XXX rm ioasicprint() & ioasic_submatch() because of <dev/tc/ioasic_subr.c> XXX 1999-03-17 17:50:06 +00:00
nisimura 1990f5b094 - Make compilable with 32bit long integer system. 1999-03-15 05:28:07 +00:00
jonathan ef79649fc1 MI ioasic softc and child-device structs, gc duplicate struct definitions.
Add MI ioasic functions, but dont enable on alpha until tested.
1999-03-15 01:25:26 +00:00
drochner c0433847af make complaints about missing platform support match reality 1999-03-13 19:46:58 +00:00
perry 240d1ad927 remove ovbcopy references 1999-03-12 23:03:31 +00:00
perry 5b25cace4c ovbcopy -> memmove 1999-03-12 22:59:23 +00:00
perry 02a2323b29 ovbcopy->memmove 1999-03-12 22:56:21 +00:00
perry a92175a153 nuke ovbcopy 1999-03-12 22:54:58 +00:00
ross 0325be06dd New file, included if present for ${MACHINE_ARCH} by bsd.kmod.mk. 1999-03-10 06:41:48 +00:00