Commit Graph

2961 Commits

Author SHA1 Message Date
pk a917eabaec * A couple of `#if defined(SUN4M)' should be `#if defined(MULTIPROCESSOR)'
* Print notice if not all CPUs were attached
* Switch to SMP version of cache flush routines in just one place: in
  cpu_attach() after all known CPUs have been configured.
2001-03-06 13:39:22 +00:00
pk b91b8796d9 Implement MSGBUFSIZE option. 2001-03-05 16:46:09 +00:00
pk 8eeb7a8a79 mp_{pause,resume}_cpu(): avoid crash when cpu(s) not yet configured. 2001-03-05 16:45:22 +00:00
pk f3c74253b0 Fix `flags' argument to pmap_enter(). 2001-03-05 16:43:34 +00:00
pk 90e5095df2 Fix syntax error in previous change. 2001-03-05 07:16:19 +00:00
pk 4e14c96788 In debug printf: missing quote on format string. 2001-03-05 07:04:01 +00:00
pk a1b18f9435 Fix syntax error in previous. 2001-03-04 21:28:11 +00:00
pk bac5be6461 Simplify `bad alias' handling in pv_link()/pv_unlink():
- there's no need to have different PV_NC flags for sun4[c] & sun4m

	- deal with kvm_uncache() being called on a managed page in a
	  separate helper function that deals with the caching state
	  within the pv list for that page, avoiding interference with
	  the `bad alias' removals in pv_unlink().

Note that currently never called for managed pages, but for now I'm
keeping the support in.
2001-03-04 21:12:24 +00:00
mrg b301668cb5 build sparc64 bootblk, ofwboot, & ofwboot.net on sparc 2001-03-04 15:34:45 +00:00
mrg e85a9ee949 this is a sparc64 program. so -DSUN4U, machine -> sparc64. cleanup. 2001-03-04 14:50:05 +00:00
mrg 0a1cdb5f63 allow sparc "make release" to build a sparc64 capable 32 bit kernel. 2001-03-04 10:12:56 +00:00
pk 51668836b3 Remove unused declaration of `cpcb', which is no longer a global variable. 2001-03-03 19:42:38 +00:00
pk d74da58795 alloc_cpuinfo: zero all the memory we allocate; not just the `cpuinfo' part.
cpu_attach: initialize `curpcb->pcb_wim' for each additional CPU.
2001-03-03 19:40:28 +00:00
pk bb5f16e6e0 Sprinkle KERNEL_PROC_LOCK()s at the kernel entry points. 2001-03-03 19:11:02 +00:00
pk bba5d36487 Initialize the IPI message locks. 2001-03-02 17:00:13 +00:00
pk 0548d12369 * proc_trampoline: call `proc_trampoline_mp()' #if MULTIPROCESSOR;
currently necessary to acquire the `running in kernel mode' lock;
  pointed out by Bill Sommerfeld/Simon Gerraty.

* remove reference to `cpu_set_kpc()' from comments, as we don't have it.
2001-03-02 10:27:00 +00:00
pk e999fb6b77 bootstrap area: remove dead code + some trivial reformatting 2001-03-02 09:48:13 +00:00
pk d98e8d5bca * Correct the `flags' argument in call to pmap_enter().
* Enable the message buffer at a temporary virtual address (KERNBASE)
  in bootstrap(), if that can be done.
2001-03-01 16:14:25 +00:00
pk 813b8d79fd * Correct the `flags' argument in several calls to pmap_enter().
* message buffer initialisation:
	- change the buffer size to 8192 on all platforms
	- don't assume the buffer is always located at physical address 0
	- drop the SUN4 hack that left first half of the page unused;
	  I believe this is no longer necessary, since the msgbuf
	  data structure is duely sanity-checked before use in initmsgbuf().
2001-03-01 16:09:25 +00:00
pk 6ae8b9ec6d Drop MSGBUFSIZE; we don't use it and it can't currently be configured
to a different value anyway.
2001-03-01 15:59:04 +00:00
pk 80ba31bd21 Drop the managed() macro; it is no longer used.
State the intended use of the vm_{first,last,num}_phys variables that are
still exported from pmap.c.
2001-03-01 15:56:47 +00:00
pk aad0b0bcd2 Change `pv list' management to use the hooks provided in the `vm_physmem'
structure. While this comes with the cost of having to search the
`vm_physmem' array every time need to find a PV entry corresponing to
some physical address, we gain the flexibility needed to support
arbitrary non-contiguous ranges of physical memory addresses.

Also, eliminate the need to sort the memory address ranges as presented
by the machine's PROM, and the requirement that physical memory starts
at address 0 (when possible).
2001-03-01 15:52:18 +00:00
pk b87a62e09a Make sure that e.g. myetheraddr() has a valid idprom pointer as soon as
possible on sun4, since it may be used before the clock attaches.
2001-02-28 14:45:23 +00:00
mjacob 312d560493 add SES device (unused #4) 2001-02-28 00:06:28 +00:00
pk 18026ec99d * Make PAGE_SIZE et.al. constants, if possible.
* Add pvlist pointer to `struct pmap_physseg'
* Because of the above, add guard against multiple inclusions.
2001-02-27 22:40:08 +00:00
cgd 8a986b2e96 convert to use getprogname() 2001-02-19 22:48:57 +00:00
jmc 106522ed47 Add -f option. If used it will perform the low level block operations on the
file rather than requiring a raw device. Useful when dealing with vnd's
images and building snapshots. Also allows snapshots to be built in
securelevel > 0.
2001-02-19 06:23:55 +00:00
pk d850f6f9d2 Remove check for encoded iospace/nocache bits within physical addresses
in places where they can't possibly occur as the PA is for a VM managed
page.
2001-02-16 23:00:11 +00:00
pk 063b190de9 Hold off supplying the text/data gap to the VM manager; our pv table
handling isn't adequate yet.
2001-02-13 15:54:33 +00:00
pk e547d3816d pmap_page_upload(): check if `etext_gap' is there, just in case. 2001-02-13 13:48:15 +00:00
pk 460bc0a0fc Recover the ~64KB gap in between the text/rodata & data segments that's being
generated by the linker in sparc/ELF images. The physical pages in this gap
are unmapped from the kernel and given to the VM manager.
2001-02-12 22:02:58 +00:00
pk d713d112c9 Provide symbol `kernel_data_start' as the first address in the .data segment. 2001-02-12 21:56:54 +00:00
pk 203c10194b Supply a kernel link script that puts `etext' at the end of all
read-only sections. Modelled after a similar change in the i386 port.
2001-02-11 16:16:58 +00:00
pk 25a91d5c1e _bus_dma_valloc_skewed(): return a vaddr_t, not error codes; make missing
boundary check return an error, so the caller can decide how to respond.
2001-01-31 15:17:42 +00:00
pk 5538893eda sun4_dmamap_load(): Check if boundary condition can be satisfied instead
of panicing blindly.
2001-01-28 20:48:31 +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
jdolecek 8b24036797 Require the machine-dependant DDB commands to be in db_machine_command_table[]
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()

Patch written by enami.
2001-01-22 13:56:55 +00:00
pk 57f38322d4 Add `-mno-fpu' to the compiler options once again: the current compiler
(egcs-2.91.66) is still liable to use FPU registers as temporaries.
2001-01-22 12:59:29 +00:00
christos 9bd2dee3b2 fix bit rot so that MP kernel compiles s/cpu_no/ci_cpuid/ 2001-01-21 07:48:29 +00:00
pk 13d4fcd69b In cpu_reboot(), only reset the TOD clock if the time is known to be good
enough, e.g. it has been initialized already by inittodr() or set
explicitly before by resettodr().  This prevents the TOD clock from going
way backwards when typing `halt' at the `mount root filesystem' prompt.
2001-01-20 13:44:29 +00:00
tv e58532a4bf No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
pk 13e03d4b43 On V0 proms, read the `idprom' property at the root node to get to the
station's ethernet address.
2001-01-18 12:50:10 +00:00
jdolecek d5d431e8ae make db_[e]regs[] const 2001-01-18 10:54:27 +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
martin a261276f16 The i4b raw b-channel devices actually do have an ioctl routine,
so better add this to the cdevsw entry.
Noted by Bruno Achauer.
2001-01-14 11:17:28 +00:00
thorpej 979919ee0f splpmap() -> splvm() 2001-01-14 02:03:48 +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
martin f53c899649 Add isdn devices to all archs that seem to support at least one of the
necessary busses. Sync comments with reality for archs that already had
the devices.
2001-01-08 21:46:33 +00:00
takemura c5fd828440 replace 'long long' with int64_t to compile stand alone program with
compiler other than GCC.
2001-01-03 10:08:55 +00:00
itojun efa2b7073c make mbstate_t bigger (32 -> 128 bytes).
XXX if you have libc after citrus locale import, please recompile libc,
and your applications that use mbstate_t (rather rare).  really sorry
for the mess.
2000-12-26 10:35:28 +00:00
jdolecek e9e91a0fb5 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.
2000-12-22 22:58:52 +00:00
itojun 823498203f populate _BSD_MBSTATE_T_. add warning regarding to rune_t. 2000-12-21 06:03:47 +00:00
bouyer c71f40d166 Add pseudo-device vlan 2000-12-19 10:42:02 +00:00
jdolecek cacec11253 delete obsolete comment 2000-12-17 15:52:39 +00:00
jdolecek ca57e681bd g/c obsolete vtrace(2) stuff 2000-12-13 18:13:05 +00:00
mrg 703ec39a02 fix warnings in DEBUG & DIAGNSTIC code. 2000-12-06 01:47:49 +00:00
mrg ce0e1dea34 sync relocs with sparc64. 2000-12-04 01:49:34 +00:00
mrg 3806c27f34 sync a comment with sparc64/include/types.h 2000-12-04 01:33:36 +00:00
jdolecek f3d1c08b2a check emul flags for EMUL_HAS_SYS___syscall instead of comparing
callp to sysent; the COMPAT_AOUT hack is gone
2000-12-01 19:50:17 +00:00
pk cd9bcb98dc Undo most of rev 1.94 to make a.out emulation work again. 2000-11-27 13:31:18 +00:00
chs bac6420b96 fix reversed keywords in previous commit. 2000-11-23 21:58:54 +00:00
chs c588bbbe76 add a missing newline in a printf(). 2000-11-21 08:14:17 +00:00
jdolecek baae0324b9 restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
  provide single struct emul per emulation
* elf:
  - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
    per emulation and contains pointer to respective probe function
  - interp is allocated via MALLOC() rather than on stack
  - elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
  to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
  emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
  part of appropriate execsw[] entry
* constify couple of structures
2000-11-21 00:37:49 +00:00
chs c62d17a551 rationalize the use of b_flags for geteblk() buffers.
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
2000-11-20 08:24:08 +00:00
pk 521b17daa6 Adjust OF_setprop() prototype. 2000-11-15 16:15:01 +00:00
pk 4a80a32735 Adjust setprop() prototype to match the one in dev/ofw/openfirm.h 2000-11-15 16:14:13 +00:00
pk 439b4b325a OF_getproplen(), OF_nextprop() and OF_setprop() prototypes are now in
dev/ofw/openfirm.h
2000-11-15 16:13:10 +00:00
pk 11eb59d511 Adjust setprop() prototype to match that in dev/ofw/openfirm.h 2000-11-15 16:12:01 +00:00
kleink a5a6bbd1a8 Defopt BLINK. 2000-11-14 11:34:51 +00:00
pk db6832a4b6 Detect "EOF" conditions on the memory-special files. 2000-11-13 15:31:44 +00:00
pk 84ee07379b Remove left-over turds from previous __P() cleanup. 2000-11-12 21:07:21 +00:00
pk 258784289c This file is no longer needed; it's superseded by the MI mk48xx driver. 2000-11-11 12:34:22 +00:00
pk d80d0a8b06 Print host ID in hex. 2000-11-11 12:24:07 +00:00
pk f88b137bd5 De-__P() this file. 2000-11-11 12:19:20 +00:00
pk 53c656364f Switch to MI mk48xx and intersil7170 time-of-day clock drivers. 2000-11-11 12:14:03 +00:00
pk 109cb0fd5e Rename storage for the sun4 idprom structure to `sun4_idprom_store'. 2000-11-11 12:12:46 +00:00
pk 0d4a68ac9b Pull in the mk48txx and intersil7170 drivers. 2000-11-11 11:19:52 +00:00
eeh 8c3f6a0d10 Adapt to new line discipline scheme. 2000-11-02 00:37:56 +00:00
pk b37856ac0e Update comment accompanying the SUN4_MMU3L option. 2000-11-01 14:34:22 +00:00
eeh ec079ca021 Pass on the sbus frequency. 2000-11-01 06:27:45 +00:00
pk 47e4ec04e2 Dispose of `boot.net.big'. 2000-10-31 23:29:36 +00:00
pk 4bddbd7e5f Align the DVMA mapping on NBPSG boundaries. 2000-10-31 23:28:11 +00:00
pk 628fe3035f Change the relocation address of `boot' once again to steer clear of
memory used by the PROM on sun4 and early sun4c machines.
2000-10-31 23:21:47 +00:00
pk f4dbaa7ac3 This file now lives in sys/dev/sun. 2000-10-31 21:55:14 +00:00
pk 62dddfec3c Enable sun4 support and VME devices. 2000-10-30 23:23:15 +00:00
pk 0e7d945483 This file is no longer used. 2000-10-20 11:31:59 +00:00
pk 2c6b19bec4 Add new-line to md attach message. 2000-10-20 11:28:04 +00:00
pk 4dd761fc83 Adjust md root filesystem size.
Enable MFS.
2000-10-20 11:24:48 +00:00
pk d037bc4f59 Change to relocation addresses that currently work on all machines.
boot programs at alternative addresses no longer built and installed
by default.
2000-10-20 11:21:08 +00:00
pk 44f6bd0d7f When relocating, there's no need to copy the BSS area. 2000-10-19 00:16:03 +00:00
pk 9d61e4d9a6 Account for the top-most 4 bits of obio addresses being zero on sun 4/100
machines, when inferring zs PROM device numbers from the physical address.
2000-10-18 23:55:11 +00:00
mjacob 7088593e82 Hmm- probably really ought to put ses into sparc GENERIC, since sparc
machines are one is very likely to run into SES units (what with all
the D1000's && A1000s out there now). I'll do it in sparc64 as soon
as I get that running for myself.
2000-10-16 01:29:06 +00:00
christos c49fc8469f void cast for lint. 2000-10-13 03:53:26 +00:00
christos 6b7dd5a41a add sunkbd.c and sunms.c; apparently these are now needed because
tty_conf.c brings them in.
2000-10-12 21:27:13 +00:00
christos 6708aee34f add missing kd_attach_input routine.
someone needs to clean this shit up.
2000-10-12 21:26:28 +00:00
abs 2824f4906d Ensure all INSTALL* kernels have two ptys, and a note explaining why:
pseudo-device  pty             2       # pseudo-terminals (Sysinst needs two)
(Some installers may not be using sysinst, in which case this just reduces
the number of ptys from 16 that are not used to 2 that are not used)
For i386 conf files, no change other than comments.
2000-10-02 18:43:34 +00:00
abs 5aa0a5abb1 Prior art in naming would suggest INSTALL_SYSINST rather than INSTALL-SYSINST. 2000-09-28 12:46:43 +00:00
abs 3ef92f0bdb Use "options<SPACE><TAB>" not "options<TAB>" - noted by simonb.
Move VNODE_OP_NOINLINE and NFS_V2_ONLY into '# Filesystem options' section.
Consistently label '# Filesystem options' and '#File systems' sections.
2000-09-25 13:54:50 +00:00
abs ccf1c822a6 Ensure all INSTALL config files have (at least) COPTS="-Os", cincluding bebox
based on it working already for macppc.
Also add commented out:
#options        VNODE_OP_NOINLINE       # Don't inline vnode op calls
#options        NFS_V2_ONLY             # Exclude NFS3 and NQNFS code
as suggestions for additional savings
2000-09-25 11:46:37 +00:00
jdolecek b1f94e26ab don't specify number of ptys if >= 16 (current default initial number)
pty comments: normalize and g/c what is no longer relevant
2000-09-24 15:59:26 +00:00
jdolecek 27824fb036 note support for verbose/quiet boot (-v, -q flags) 2000-09-24 12:33:58 +00:00
jdolecek 49c105ffdb add new macro BOOT_FLAG() (defined in <sys/boot_flag.h>) - this
maps standard boot flags to corresponding RB_* values
use BOOT_FLAG() in port's MD code as appropriate

as discussed on tech-kern, add new boot flags -v, -q for booting
verbosely or quietly, and corresponding AB_VERBOSE/AB_QUIET
boot flags; also add FreeBSD-compatible bootverbose macro and
NetBSD-specific bootquiet macro

for hpcmips, use new bootverbose instead of it's own hpcmips_verbose

Tested on i386, and to limited extend (compile of affected files) also for
mvme68k, hp300, luna68k, sun3.
2000-09-24 12:32:31 +00:00
pk d5fe063129 MULTIPROCESSOR: if the cache flush functions are no-ops on a single
processor, they can be no-ops in the MP case as well.
2000-09-19 13:44:35 +00:00
thorpej 72a24b4eae Add an align argument to uvm_map() and some callers of that
routine.  Works similarly fto pmap_prefer(), but allows callers
to specify a minimum power-of-two alignment of the region.
How we ever got along without this for so long is beyond me.
2000-09-13 15:00:15 +00:00
pk 4e56e1746f Turn off page zeroing in the idle loop; an unidentified bug causes (very
sporadic) user process corruption.
2000-09-10 11:32:04 +00:00
pk 3011e0816b Revise pv_table_map(): to simplify calculations, pv_table[] now covers
all of physical memory, i.e. it conceptually is pv_table[0..avail_end].
The previous version could lead to an off-by-one error in the page allocation
for pv_table[] in some memory configurations.
2000-09-09 10:24:34 +00:00
abs b5f864571c Switch INSTALL back to being used by miniroot install.
Add INSTALL-SYSINST config for sysinst install.
These are expected to diverge more as time progresses.
2000-09-04 16:16:18 +00:00
pk 710295327e Scheduler lock update. 2000-08-31 16:59:12 +00:00
pk 55af96281e Pull down from 1.4 branch: default relocation address = 3E0000 2000-08-28 19:10:31 +00:00
thorpej 4db6fc7542 Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity.  Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
nathanw 5127aa189d In fdioctl(), allocate fd_formb dynamically when needed, rather than on
the stack, and remove the no-longer-necessary PHOLD()/PRELE() calls
in fdformat().

(This eliminates 1/3 of the instances of PHOLD()/PRELE() in the kernel code.)

XXX We still have too many mostly-redundant floppy drivers.
2000-08-24 20:04:28 +00:00
pk 7c10808744 Use common fb.c from sys/dev/sun. 2000-08-23 13:41:58 +00:00
pk 91f1b275c9 Remove driver declarations that are now in /sys/dev/{sbus,sun} 2000-08-22 21:29:49 +00:00
pk 702e1dd9e6 Use the framebuffer drivers & header files that now live in /sys/dev/sun. 2000-08-22 21:28:24 +00:00
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
abs 02a00854f4 Diet a little to help fitting onto a floppy 2000-08-22 13:36:14 +00:00
thorpej 23a7f255d4 Make sure we provide splsched() as described in spl(9). 2000-08-21 02:06:31 +00:00
mrg e144281c4e move ofwboot & bootblk here; add a Makefile to build ofwboot.net 2000-08-20 14:58:36 +00:00
mrg 85737336b4 add/merge sparc64 support. 2000-08-20 14:57:16 +00:00
mrg 9bea0e1a52 fix ultrasparc support. 2000-08-20 14:56:28 +00:00
pk 4ec48d799f fbio.h moded to sys/dev/sun.
Retain symlink from /usr/include/machine.
2000-08-20 14:02:59 +00:00
pk 1f76e23f2c Drop two `#ifdef SUN4U's, since `sparc{64}/include/instr.h' are now synced. 2000-08-16 11:36:36 +00:00
pk d48d0665e9 Sync with sparc64. 2000-08-16 11:30:38 +00:00
mrg ac5a03b4eb find loadfile_machdep.h on sparc64. 2000-08-16 08:24:01 +00:00
mrg 3eeab3822d deal with 64 bit ELF 2000-08-16 08:16:58 +00:00
itojun 85dda25e94 move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
2000-08-13 01:31:15 +00:00
mrg 7d27fced15 remove some ".sparc64" file suffixes that are not necessary. 2000-08-10 13:34:39 +00:00
mrg 3f0e682019 add sparc64 support. 2000-08-10 13:27:47 +00:00
tshiozak 51a53de0d5 Preparation for the future introduction of multibyte locale.
- MB_LEN_MAX is increased to 32.
 - To ensure binary compatibility for old executables
   under multibyte locale, versioned setlocale is added.
 - __mb_len_cur definision is added in setlocale.c
   and enable it in stdlib.h .
   It is also important for multibyte locale stuffs,
   but I just forgot.
2000-08-08 22:31:13 +00:00
hannken 8e764c2ae5 Add missing `#ifdef SUN4U', `FTYPE_LNG' is only defined on sparc64. 2000-08-04 14:44:40 +00:00
eeh dd5c54d05c Add fpu emulation instrumentation and fixup FCMP and FCMPE emulation for v9.
And rename the 128-bit `x' routines to `q' to match v9 terminology:
	i - 32-bit int
	x - 64-bit int
	s - 32-bit fp
	d - 64-bit fp
	q - 128-bit fp
2000-08-03 18:32:07 +00:00
jdolecek e25636b5da g/c RB_DFLTROOT
I've tried hard to find also various usage() messages and remove the
appropriate flag from there as well, hopefully all occurences are covered.
2000-07-29 20:06:27 +00:00
mason 4a353b5330 Moving to a default of 64 PTYs. 2000-07-27 17:53:35 +00:00
mrg cc41b6af8f remove COMPAT_AOUT option. 2000-07-27 14:34:06 +00:00
pk 4a3cba7a65 Pull in <dev/clock_subr.h>. 2000-07-26 11:28:36 +00:00
pk f343e5777c Add `dma' to the `early device' list, since we need it before an `esp'
is configured. Traced and tested by Julian Coleman.
2000-07-25 21:50:03 +00:00
toddpw 6c80daae8d Ignore all undefined bits in the Tadpole microcontroller status register.
Only the low nibble is defined, and on at least one 3gx (mine) there is an
undefined bit which reads as a one -- bit 6 (0x40). This screwed tctrl_intr()
which would loop forever, thinking it always had new events to process.
2000-07-25 09:57:59 +00:00
pk a95d924d4d Fix delay slot error in the SUN4_MMU3L startup code. 2000-07-24 08:48:03 +00:00
mycroft 4cbff173ea Fix an obvious error that would cause fpu_ftoxi() to drop the upper half.
The compiler even emitted a warning for this...
2000-07-24 04:13:45 +00:00
mycroft bdc8c86c9e asm volatile --> __asm __volatile 2000-07-24 04:11:03 +00:00
pk a57e77c50f Minor comment update; remove unused code. 2000-07-22 21:23:05 +00:00
jdolecek ab07c9d5a9 switch to sys/conf/newvers_stand.sh for generation of version file
sync the message in boot/version with other ports using newvers_stand.sh
2000-07-21 22:02:54 +00:00
matt 2890290b0f Add com* at obio0. (Tadpole & JavaStation) 2000-07-15 19:59:53 +00:00
matt 1d97a430c4 Enhance this so it support the com port on the JavaStation 1 as well as
the tadpole internal modem.
2000-07-15 19:57:03 +00:00
pk 406e0f779f Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
2000-07-09 20:57:41 +00:00
pk 2a57393a0f Re-arrange headers; drop <machine/cpu.h>. 2000-07-09 20:38:34 +00:00
pk 404e6e3a61 Drop KERNFS 2000-07-08 11:33:24 +00:00
sommerfeld 502fc00210 Comment out EON ISO-over-ip tunneling pseudo-driver, and document as
broken/fragile.  Unlikely to be of much use, and confuses new users
when their system crashes when they, or their dhclient stumble over
it.  See kern/10500, kern/8994 for the gory details.
2000-07-05 04:07:22 +00:00
pk 0cc7c0e470 Report spurious VME interrupts only #ifdef DEBUG for now. The i82586
based `ie1' board seems to cause this for no apparent reason.
2000-07-04 22:22:56 +00:00
pk 3214045e75 GC dead code. 2000-07-04 14:05:34 +00:00
pk 3cffbb811c Pass correct argument to the console channel close routine. 2000-07-04 13:57:40 +00:00
pk 93f987a210 The `si' driver has been transformed into an MI VME frontend. 2000-07-03 23:30:33 +00:00
pk 047b6f9582 * Remove MAX_DMA_LEN & si_minphys().
* Disable the DMA engine when setting up a DMA transfer, just in case
  the 5380 driver didn't instruct us to do so already.
* More useful debug output when entering the "left-over bytes" case after
  a DMA transfer finishes.
2000-07-03 20:55:12 +00:00
sommerfeld 88067a43e3 Build a boot_big.net (based at 700000) in addition to boot.net,
allowing you to netboot a kernel with a ramdisk inside on systems
where memory is laid out to allow this.
2000-07-03 02:04:02 +00:00
cgd a5c13f9ad4 Kwality control:
* put #includes of opt headers and headers to get protos used by
  net/netisr_dispatch.h in net/netisr.h (if !defined(_LOCORE)) (rather than
  in netisr_dispatch.h itself, and potentially nowhere, respectively).
* require netisr.h to be included before netisr_dispatch.h.
* minor additional cleanup of both netisr.h and netisr_dispatch.h.
* clean up uses to remove now-unnecessary header file inclusions, and
  local prototypes of the fns.
* convert netisr dispatch implementations which didn't use
  netisr_dispatch.h (pc532) to use it.
2000-07-02 04:40:33 +00:00
itojun d738f90fd7 raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory.  MHLEN is too small
  already (less than 80) and there are chances for unwanted packet loss due
  to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
  (even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
  extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
2000-06-30 17:55:11 +00:00
itojun d76ae83df8 add PULLDOWN_TEST for all the platforms.
XXX should be moved to somewhere else when stabilized
2000-06-30 17:10:15 +00:00
pk b7e36aabb5 When winding down a DMA transfer, don't complain about the actual
transfer count being smaller than the minimum transfer size for which
we would use DMA. The device may be disconnecting, to complete the
transaction at a later time. Just let the 5380 engine proceed acting
on the current SCSI bus phase.
2000-06-29 14:06:40 +00:00
mrg 8daa58f52b remove include of <vm/vm.h> and <machine/pmap.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:40:05 +00:00
pk 054fe0cb32 Move `DIAGNOSTIC || LOCKDEBUG'-only lock counters to the end of the cpu_info
structure, Just In Case.
2000-06-27 16:51:44 +00:00
pk 618d3d0fde VME/IOMMU DMA load must also relocate DVMA addresses to the start of VME space. 2000-06-27 09:05:23 +00:00
kleink bb2ed0f487 G/c _BSD_INTPTR_T_ and _BSD_UINTPTR_T_. 2000-06-27 05:53:22 +00:00
kleink 47b5c5e3b1 Resolve some formatting nits; add __intptr_t and __uintptr_t. 2000-06-27 04:58:51 +00:00
pk e2b1b6cd42 Split si & sw drivers. 2000-06-26 19:54:08 +00:00
kleink e695f72a2e Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
2000-06-26 15:42:16 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
pk 51a2c92940 The `sw' driver should not use vme bus routines. 2000-06-26 09:50:00 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
mrg c543a66253 remove some redundant <vm/vm_xxx.h> includes 2000-06-25 13:26:19 +00:00
pk 8b3ad4a667 Use vme_dmamap_create() instead of bus_dmamap_create().
Remove Sun hardware id test from si_match().
2000-06-25 13:09:52 +00:00
pk 560d1ea54c Implement vme_dmamap_create/vme_dmamap_destroy, which allows us to
select the appropriate DVMA subrange for VME devices.
2000-06-25 13:07:34 +00:00
pk 0790f00e68 Maintain the DVMA map extent subregion boundaries in the bus_dma map
structure.
2000-06-24 22:47:45 +00:00
kleink 133ea38323 Add a WEAK_ALIAS() macro. 2000-06-23 12:18:45 +00:00
fvdl 1ee7d22c0b Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC. 2000-06-22 20:27:49 +00:00
pk 6a56e89b7a Enable SUN4_MMU3L (sun4/400 3-level MMU support) 2000-06-21 13:46:43 +00:00
pk 5c1633af0d Fix pastos in bus_space_read_region_*() functions. 2000-06-21 13:41:23 +00:00
pk 2bb919e39a Update entries for VME devices ie[1-4]. 2000-06-20 14:24:24 +00:00
pk a849fa0158 region_free: use correct index to invalidate a MMU region cookie in a pmap.
Remove work-around in pmap_enter(); the sun4/3-level MMU now works.
2000-06-20 12:04:22 +00:00
pk c1aec32fc0 Use `pv_pool' in non-wait mode; for now, panic if memory is exhausted. 2000-06-19 21:06:32 +00:00
fvdl 51e81216d1 Rearrange previous slightly to avoid getting values that are too low;
the only goal here is to leave some space for the stack.
2000-06-18 23:03:45 +00:00
pk d982283952 vme4_dmamap_[un]load: ensure enough DVMA space is allocated to cover the
buffer and store that amount in the DMA map to avoid re-computation.
Also add a cache flush as the bus_dmamap_sync() don't do that yet.
2000-06-18 19:30:21 +00:00
pk a29dc4045f Conversion to bus_space*(). 2000-06-18 19:19:53 +00:00
mrg feddb7ad96 merge in ultrasparc changes 2000-06-18 06:54:17 +00:00
fvdl 8dde6d4336 Account for the stack when computing the base va. This makes the
bootblocks work again on the 4/110.
2000-06-18 02:25:17 +00:00
pk 98726268ee Remove pointless debugging check. 2000-06-15 14:42:32 +00:00
pk cc9163a28a Enable DMA interrupts. 2000-06-15 14:27:07 +00:00
pk 752b4566c4 bus_dmapmap_create: boundary must be 0, not NBPG. 2000-06-15 12:12:05 +00:00
veego 223d7455c7 Remove the obsolete config fragments for kernel crypto, because the IPsec
crypto code is now in the kernel source tree.
2000-06-14 22:02:13 +00:00
pk f9cf3305c3 No need to cast return value of spl0(). 2000-06-09 10:47:25 +00:00
pk 9bf0d228f0 spl0() and spllowersoftclock() return void. 2000-06-09 10:43:52 +00:00
pk 1610381d13 GC unused `autoconf_nzs'. 2000-06-08 21:37:43 +00:00
pk 12db2d5991 viking_pcache_flush_page: use entire PA tag field. 2000-06-08 14:45:18 +00:00
gmcgarry 6de3467b52 - Clean up use of AUDIO_C_HANDLER.
- Copy bus_space handles into auio for fast handler.
2000-06-06 22:34:34 +00:00
pk c7d426f2b5 viking_cache_flush_page: spell bitmasks in hex, not octal. 2000-06-06 20:08:29 +00:00
pk 8a0d25a707 Oops, type confusion.. 2000-06-06 09:20:31 +00:00
pk b5321a5a5c Make the address argument of pcache_flush_page() a `paddr_t'. 2000-06-06 07:56:40 +00:00
thorpej 814826fdda Fix typo. kern/10291. 2000-06-05 20:47:47 +00:00
pk 862a955e34 Re-arrange code to flush physically indexed caches:
* replace `flush by line' function with a `flush by page' funtion, which
  also takes an argument to indicate that write-back caches need not
  validate its backing memory.

* use this function when allocating page table memory to flush the cache
  before mapping it into kernel virtual space.

* also use it in pmap_{zero,copy}_page(), so we can safely use non-cacheable
  access in there.
2000-06-05 20:38:24 +00:00
nisimura 4371d91433 Have MI ncr53c9x_attach() the 2nd and 3rd arguments for scsipi_adater
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
2000-06-05 07:59:50 +00:00
cgd cffb580806 Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
2000-06-04 19:14:14 +00:00
thorpej 0e2f894851 Provide a CPU_IS_PRIMARY() macro in the MULTIPROCESSOR case. 2000-06-03 20:43:28 +00:00
pk 630ec72e5d Make sure to have the cache info before allocating the global cpu_info
virtual addresses.
2000-06-03 09:56:35 +00:00
pk aae0ef4cc1 In pmap_cpu_alloc(), allocate memory for the PTE tables in one sweep. 2000-06-02 10:43:59 +00:00
pk 65e4bcd9df Re-initialize `proc0.p_cpu' after allocating the global `cpu_info'
address for the boot cpu (XXX)
2000-06-02 08:12:29 +00:00
matt 168343c32d Make the ramdisk space the same as the ramdisk size being built in distrib 2000-05-31 17:35:59 +00:00
pk 08d1e4928a Initialize `ci_self' on all CPUs.
Check `cpuinfo' pointers in mp_pause_cpus() & mp_resume_cpus()
2000-05-31 12:26:15 +00:00
pk 504ed6e58b Move switchexit() declaration in here. 2000-05-31 12:05:04 +00:00
pk 0985cc7d7e Remove obsolete function declarations.
Move switchexit() to cpu.h
2000-05-31 12:04:29 +00:00
pk fca92e02ab Fix a couple of typos. 2000-05-31 11:23:21 +00:00
thorpej 8d5520dccf - In the MULTIPROCESSOR case, initialize p_cpu before a process is
marked SONPROC.
- Fix a bug where all cpu_info structures except for the boot CPUs
  would exist at both a CPU-local VA (CPUINFO_VA) and a gloal VA;
  The boot CPU's existed only a CPUINFO_VA.
- Add a self-reference pointer to the cpu_info that references the
  global address in the MULTIPROCESSOR case.  Just allow it to reference
  the `local' VA in the single-processor case, as CPUINFO_VA is global
  enough when there's only one processor to care about.  Change curcpu()
  to return the global address.
2000-05-31 05:28:26 +00:00
cjs a9a7dd7904 Fix typo in DEBUG code. 2000-05-30 03:26:34 +00:00
pk ee396c032f Remove IOMMU page table allocation from pmap_bootstrap() and all the
hacks surrounding it.
2000-05-29 22:23:34 +00:00
pk ce1fb71efc Use uvm_pglistalloc() to allocate memory for the I/O PTEs; modelled after
a similar change by Art Grabowski in Openbsd.
2000-05-29 20:41:10 +00:00
pk 7da3d45dfc Cleanup iommu_attach(). 2000-05-28 20:55:54 +00:00
pk 57b382f034 Add a few comments. 2000-05-28 20:54:42 +00:00
thorpej e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +00:00
matt 22519583f3 Add tadpole specific devices. 2000-05-27 20:56:51 +00:00
mason 972014e5a8 Make compile after scheduler state cleanup. 2000-05-27 11:44:54 +00:00
sommerfeld 40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +00:00
thorpej a7d0570e67 First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
jhawk 8e44b27348 Rename the machine-specific stack trace printing functions
from db_stack_trace_cmd() to db_stack_trace_print(),
and add an additional argument, a function pointer for an
output routine (i.e. printf() or db_printf()).

Add db_stack_trace_cmd() in db_command.[ch], calling
db_stack_trace_print() with db_printf() as the printer.

Move count==-1 special handling from db_stack_trace_print() [nee
db_stack_trace_cmd()] to db_stack_trace_cmd() [nascent here].

Again, I'm unable to test compilation on all affected platforms,
so advance apologies for potential brokenness.
2000-05-26 03:34:24 +00:00
thorpej 8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00
jhawk f3528d725d Interface change: db_printsym() takes a third argument, pr, a function
pointer indicating how to print the symbol. This allows db_printsym()
to called in places where db_printf() is not an appropriate output
function.

While straightforward, apologies in advance if I've introduced any minor
syntax errors; I was unable to test compilation this on all the affected
platforms.
2000-05-25 19:57:30 +00:00
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
pk 1273031c4d Simplify the bus_dma(9) implementation:
- the `alignment' and `boundary' arguments in bus_dmamem_alloc() only
  serve as hints on how to break up a DMA transaction into chunks
  when necessary; it is not necessary on sparc DVMA hardware.

- exclusively use the VM page size (i.e. PAGE_SIZE et.al.) when computing
  resource allocations.

- remember the size of DVMA resource allocations in the private `_ds_sgsize'
  field in a dma segment descriptor.
2000-05-23 11:39:57 +00:00
pk 8c39bf5d24 MicroSPARC 1 cache issues:
- mark as CPUFLG_CACHE_MANDATORY to avoid cache inconsistencies in
  pmap_{zero,copy}_page().
- compute caching alias bits correctly
- add experimental optimisation in ms1_cache_flush().
2000-05-22 22:03:32 +00:00
mrg 296eaaa36d add two new CPU_ISXXX versions: CPU_ISSUN4U, CPU_ISSUN4MOR4U 2000-05-22 02:35:23 +00:00
eeh 3cee90e0e1 Need to provide a consdev to the cons_attach_input call now. 2000-05-21 14:36:15 +00:00
thorpej 071aed40ac A foolish consistency; most parts of the kernel use bp->b_data, so
change these from bp->b_un.b_addr to bp->b_data, as well.  This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
2000-05-19 18:54:22 +00:00
eeh 424619ca1a Fix the sparc64 console.
Unlike the other Sun machines, UltraSPARCs can have consoles run on different
chips than zs, so we need to support them.  So, here we go:

	Add a new PROM console driver with a major number and everything.
	This is the default driver if nothing else attaches.  It does not
	use the keyboard driver since the PROM translates keystrokes itself.
	(Unfortunately it also swallows L1-A).

	Have the keyboard driver take over the console when it attaches on a
	serial port.  When a serial port detects a keyboard and attaches the
	keyboard driver, it needs to provide a set of consdev vectors.  They
	keyboard driver will use those to send I/O to the keyboard and mouse.
2000-05-19 05:26:16 +00:00
pk 7caaf84b68 bus_dmamem_alloc: ensure alignment is always at least the page size. 2000-05-18 10:10:55 +00:00
pk 817862e208 vmapbuf: should not map the kernel address uncacheable. 2000-05-17 14:37:59 +00:00
thorpej 463931b3ba Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc.  Those
platforms should be changed to use device_register().  In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
2000-05-16 05:45:44 +00:00
pk bde258dc12 bus_dmamem_alloc: round-up `alignment' to a be a multiple of the page size. 2000-05-10 14:27:51 +00:00
pk fbd2523c70 * Fix thinko in offset computations.
* Add DIAGNOSTIC checks.
2000-05-10 11:17:50 +00:00
pk 1bf775b965 Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs. 2000-05-09 22:42:08 +00:00
pk 2d12c9e33b The bus_dma(9) implementation now allocates DVMA addresses in
bus_dmamap_load_*() routines only. Note that DMA memory buffers
allocated with bus_dmamem_alloc() _must_ be loaded by bus_dmamap_load_raw().
2000-05-09 22:39:35 +00:00
pk 6411be9c63 Include <sparc/sparc/asm.h>, per PR#10082 2000-05-09 20:29:28 +00:00
hubertf 9f48bba3ae Add "install" target, so "make install" after building the kernel
does something useful.  The target can be redefined by putting a
install-kernel-${MACHINE_NAME} target that fits your needs into
/etc/mk.conf.
2000-05-09 00:56:21 +00:00
thorpej 6a33c86623 HAVE_GCC28 -> HAVE_EGCS, and make it match gcc 2.9 as well. Also,
make the use of -Wno-uninitialized explicit, don't rely on a compiler
hack to do it for us.
2000-05-09 00:32:19 +00:00
augustss 3a6e3a4670 Add (sometimes commented out) MIIVERBOSE option. 2000-05-08 13:49:44 +00:00
mycroft a7fb64072e Fix the RCS tag format. Duh. 2000-05-08 03:11:06 +00:00
mycroft f8e0411615 Make the audioamd assembler code compile again. 2000-05-08 03:09:54 +00:00
mycroft f5bd37be57 Make the SPARC audioamd driver at least *compile*. Well, the C code, that is.
*sigh*
2000-05-08 02:44:31 +00:00
hannken 0b2854eb6c Fix for lint during build of libc. 2000-05-05 20:12:00 +00:00
augustss e991ee6035 Use correct file name for amd7930. 2000-05-05 14:19:25 +00:00
pk f622dc8618 Define some more bits in the MXCC control register. 2000-05-05 11:07:15 +00:00
pk c49e7076d3 Simplify pmap_page_protect(); modelled after a similar change by
Art Grabowski in Openbsd.
2000-05-02 13:06:27 +00:00
pk d46e0d77c0 Remove unused code: getptesw4m(),setptesw4m() 2000-05-02 10:35:06 +00:00