Commit Graph

894 Commits

Author SHA1 Message Date
pk 68edef1bf6 Back out previous for now; it requires a system wide prototype change. 2000-07-14 09:58:52 +00:00
pk c32ffb8447 Make `physmem' an `unsigned int', so it can properly represent large memory
configurations.
2000-07-14 00:02:35 +00:00
pk 9da8631e2b printf() format for 64-bit integers `tf_pc' and `tf_npc'. 2000-07-13 16:44:03 +00:00
mrg c0f74e1bda remove memreg.h. 2000-07-13 06:30:16 +00:00
mrg 22820972ac remove vaddrs.h 2000-07-13 06:25:55 +00:00
mrg 81ec8bef47 remove old (bogus) comment. 2000-07-13 06:23:07 +00:00
mrg d5a1bec37e bump some system values. 2000-07-13 05:40:51 +00:00
pk 7e8f67ad97 No need to fetch the psycho's own registers as thet are already passed
down from the parent bus.  Also account for the difference in `reg'
properties in psycho vs sabre chips.
2000-07-12 21:49:44 +00:00
pk f56554a578 If there is no "interrupt-map" property on the ebus node, assume the
child "interrupt" properties are already in a format suitable for
the parent bus.
2000-07-12 21:07:36 +00:00
eeh 1f45545899 Add UltraSPARC III specific flag bit. Currently ignored. 2000-07-11 21:55:11 +00:00
eeh f10d7699fc Break into debugger by typing `+++++', 2000-07-10 20:24:23 +00:00
eeh 7403ef3d00 Need to include <sys/exec_elf.h> to make things happy. So much for adding
dead code.
2000-07-10 01:15:17 +00:00
eeh 048f1387db Function signature for bus_intr_establish() changed. 2000-07-10 01:11:14 +00:00
eeh 1cfb5e6456 Grab and use the memory model info from the flags in the ELF header. 2000-07-09 22:39:17 +00:00
eeh ec71379542 Use TSO memory model for 32-bit userland. 2000-07-09 22:02:32 +00:00
eeh e5cd515b89 Upgrate interrupt handling:
1) use interrupt vectors for specific zs chips rather than polling
	   all of them.

	2) use softintr_schedule() and schedule it for a particular device
	   rather than poll all devices.
2000-07-09 21:58:43 +00:00
eeh f43ab74a43 Shuffle around some fields to waste less space on LP64. 2000-07-09 21:55:24 +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
mrg 152f5c5f28 remove unused variable. 2000-07-09 13:35:54 +00:00
eeh 5a7cb20576 gdb requires a `struct fpstate' so provide one. 2000-07-08 19:25:14 +00:00
mrg 065b56c096 backout part of previous: turn off intrdebug, and another debug message 2000-07-08 05:04:01 +00:00
pk 2c1dc518bd Changes for readability:
- #define LP64 dependent STACKFRAME macro once
	- use a LOAD_ASCIZ macro for setting up the format string
	  for debug messages.
2000-07-07 23:28:28 +00:00
eeh 468c727a28 Temporary fix to prevent the clock from stopping on UIIi machines. 2000-07-07 19:59:36 +00:00
eeh 14b1b05f10 Rename GENERIC to GENERIC32 and GENERIC64 to GENERIC to allow snapshots to
build properly.
2000-07-07 19:11:56 +00:00
mrg 2b69bc2115 BUFCACHE=20 2000-07-07 14:22:57 +00:00
mrg b91804af6c split up debug flags so i can turn off some of them 2000-07-07 13:10:34 +00:00
pk cacf690261 Try both the BOOTPARAM and DHCP protocol (in that order as is the custom
with Sun machines).
2000-07-07 12:59:16 +00:00
mrg 4b21f66d57 work around a bug passing arguments to iommu_dvma_load_raw() 2000-07-07 12:53:29 +00:00
mrg c0f4ea2a12 check that this *entry* is BUSCLASS_NONE (not the current device) in
bus_compatible().  fixes boot device detection on sbus.  while i'm here,
sprinkle DPRINTF()s in the boot device detection code.
2000-07-07 12:44:47 +00:00
mrg 9a6c45e283 options BUFCACHE=20, plus a 64 bit config. 2000-07-07 08:44:16 +00:00
eeh 3f2289a3d7 Handle bus_dma aligment properly. 2000-07-07 02:50:19 +00:00
eeh 6a1f10a7d5 Added two new options to the bootblock: -V turns on verbose mode and -D
makes it load but not execute.  If fcode-debug? is enabled in the firmware
an arbitrary file can then be loaded with:

ok " <path>" do-boot
2000-07-06 17:15:07 +00:00
eeh 63d57aa16a Fixup counter-timer interrupt lossage. 2000-07-06 14:13:05 +00:00
pk f6d8b8e963 We want to index the PCI `interrupt clear' registers with the Interrupt
Number Offset.  (this stuff needs a serious cleanup).
2000-07-05 12:11:59 +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
eeh 968524445a Prevent interrupts from being posted if they are active and deprecate polled
interrupts.  This seems to eliminate the spurious interrupts.
2000-07-03 17:56:06 +00:00
eeh 58c36586cd Use the same IPLs as everyone else. 2000-07-03 17:42:37 +00:00
mrg 16fd30ec1d - add a bus class check to the conversion of prom names to NetBSD driver
names, as we need to convert `pci' to both `psycho' and `simba'.  add
a member to dev_compat_table[] for this, using BUSCLASS_NONE for when
we don't care (all other cases, currently).  add `ide' -> `pciide' and
`disk' -> `wd' mappings here, also.
- "psycho" is a BUSCLASS_MAINBUS device; it has UPA attachment semantics.


this fixes bootpath detection for IDE disks.
2000-07-03 14:38:05 +00:00
pk 2310f6d755 Add `ahc' (Adaptec 2940, et.al. SCSI controller); it is known to work. 2000-07-02 21:11:26 +00:00
eeh f504adf782 Clean up interrupt handling some more. 2000-07-02 16:13:21 +00:00
mrg f3e6e48cb8 update to reality:
- TRAPWIN is defined in locore.s
- don't config netbsd_wd0
- enable MSDOSFS and FFS_IE
- enable INET6 & IPSEC*
- enable ipfilter
- comment sbus & zs at sbus
- enable scsi devices seeing we have scsi bus support
- hardwire the onboard hme as 'hme0'
- disable audiocs for now
- disable rnd for now
2000-07-02 15:02:29 +00:00
mrg 585f7645bf iommu_dvmamap_load*(), pass an alignment constraint, as well as
EX_BOUNDZERO, to extent_alloc().  this fixes problems with it
(extent_alloc()) returning incorrect values, when the start of
the extent is not aligned as strongly as the requested area..

raw access to ide disks now works.
2000-07-02 14:00:38 +00:00
mrg 15c79c03c2 use bitmask_snprintf(). 2000-07-02 13:35:35 +00:00
mrg 9ec4bcf95b whoops; turn off trapdebug again. 2000-07-02 12:39:01 +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
eeh 707e41f21e Fix interrupt delivery on UltraSPARC IIi machines. 2000-06-30 22:58:01 +00:00
eeh 3250ce2976 Reserve a page for dumping the kernel. 2000-06-30 22:17:53 +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
eeh ff9280f4ee This seems to fix the problem in __semctl13.c without breaking anyghing else. 2000-06-29 20:15:24 +00:00
pk 8906c1b836 Fix bus_space_read_region_{2,4,8}(). 2000-06-29 14:10:16 +00:00
mrg 4d14e81c0b remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:37:53 +00:00
kleink d82c31e07e Typo. 2000-06-27 08:43:02 +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 7d89e9904d We want prom_claim_phys() to return the address passed into it. 2000-06-26 19:45:54 +00:00
pk 9b1e1aeb66 prom_claim_phys: it appears one result argument too many was specified.
Now we can return the actual result of the call rather than merely
reflecting the input.
2000-06-26 19:41:20 +00:00
pk ff54ba628e prom_claim_phys: set `align' parameter to 0 (meaning: get the chunk at the
specified address).
2000-06-26 19:36:07 +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
eeh 7e7c0311e4 Advertise we have __GENERIC_SOFT_INTERRUPTS. 2000-06-26 15:13:26 +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
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 53be5b215c <vm/vm_pageout.h> is already empty; kill it totally. 2000-06-25 13:49:33 +00:00
eeh 2e1e35d58e Enable interrupts. 2000-06-24 23:27:23 +00:00
eeh 6c5d2dbbac With these changes the kernel seems almost stable again. 2000-06-24 20:48:36 +00:00
eeh 8e1fd2e3c6 Remove a couple of references to vaddrs.h that slipped through. 2000-06-24 16:51:34 +00:00
eeh 49bf46caf7 Add PROM symbols to 32-bit kernels too. 2000-06-24 04:42:55 +00:00
eeh 85cab8fe27 More VM cleanup:
Move the cpu_info structure above the interrupt stack so it won't
	get corrupted if the stack overflows.

	Flush the D$ before and after all MMU bypass accesses since the
	D$ latches all of those.
2000-06-24 04:38:20 +00:00
eeh 25bb978ba8 Printing out %pc values should now be safe. 2000-06-24 04:26:45 +00:00
eeh 0db2dfd53f Make these interrupt levels reflect reality a bit better. 2000-06-24 04:25:08 +00:00
eeh cc02c0d142 masterpaddr is gone. 2000-06-24 04:24:10 +00:00
eeh be308420d4 Get rid of vaddrs.h. 2000-06-24 04:20:58 +00:00
eeh 3bc65c6d9e Use probeget to read kernel data to prevent the machine from falling over if the PC goes bad. 2000-06-23 19:52:57 +00:00
eeh e9b3925f8b Make probeget() and probeset() really work for a change. 2000-06-23 19:50:54 +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
eeh d24721788a Correct calculation of length for dma segments in iommu_dmamap_load(). 2000-06-22 18:18:19 +00:00
eeh 75eaa6ba70 lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug. 2000-06-20 18:06:12 +00:00
eeh 245619bad4 Have separate data and text segments, make text read-only. 2000-06-19 23:30:32 +00:00
eeh 4ffba8be2a Fix uninitialized pointer bug. 2000-06-19 22:29:15 +00:00
mrg cafc122317 catch up with fpu changes. 2000-06-18 08:13:45 +00:00
mrg f44ba0a4dc back out part of previous. 2000-06-18 08:13:26 +00:00
mrg fab0adad15 iommu_flush becomes iommu_strbuf_flush cuz that's what it does. 2000-06-18 07:17:40 +00:00
mrg 70a9c29b9b give BSDB_MAP a value. add a shushing cast. 2000-06-18 07:13:41 +00:00
mrg b6026e7c35 kill dead code. 2000-06-18 07:12:39 +00:00
mrg fde87ed5d6 add a (u_long) cast for quietness 2000-06-18 07:10:23 +00:00
mrg 0bd5307bf8 remove an unused variable. 2000-06-18 07:05:09 +00:00
mrg 9105157268 duplicate "file" should only include "compile-with" 2000-06-18 07:03:35 +00:00
mrg 4f9416205c update to reality 2000-06-18 07:02:04 +00:00
mrg e36a32c98f obsolete these; use the merge sparc version. 2000-06-18 06:58:30 +00:00
mrg 41d83cead7 use arch/sparc/fpu 2000-06-18 06:57:15 +00:00
mrg f007a974bb turn off softdep for now; we have enough other things to worry about. 2000-06-15 18:23:52 +00:00
mrg eccc09d9de fix a couple of errors in the previous. from eeh. 2000-06-15 15:51:07 +00:00
mrg e26f7acd77 my Ultra-1 2000-06-15 13:50:20 +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
eeh 3517559eb5 Missing paren. 2000-06-13 05:04:05 +00:00
eeh fb0404cc75 Start reorganizing the kernel for MULTIPROCESSOR support. 2000-06-12 23:32:46 +00:00
eeh 65bca8bde2 Fix OF_val2sym and OF_sym2val. 2000-06-12 23:26:38 +00:00
eeh 3dfb9ee7ac More debugging support. 2000-06-12 23:20:54 +00:00
eeh 0146a569d2 Comment describing the IOMMU DVMA address space layout. 2000-06-12 23:19:05 +00:00
eeh cc29e9b22c ebus_ca needs to specify enough memory to hold an ebus_softc, not a struct device. 2000-06-12 22:36:59 +00:00
mrg 69d1f5db9d clean up cruft. 2000-06-12 05:31:30 +00:00
mrg fdfb59b4b9 ih_map & ih_clr are volatile. 2000-06-12 05:29:43 +00:00
mrg 9918c00a61 formatting nit. 2000-06-12 05:27:27 +00:00
eeh d26027dd5b Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.
2000-06-10 20:51:43 +00:00
eeh c69e701de8 Separate COPTS from CFLAGS to fix problems w/unoptimized files, and add
lfs_loop.c to the list that breaks optimization.
2000-06-09 15:28:21 +00:00
mrg ed15212269 myetheraddr(): don't lose badly when the clock hasn't been attached yet. 2000-06-09 05:27:40 +00:00
eeh 7539c8d1ce Turn on PCI MEM and DMA. 2000-06-08 23:03:17 +00:00
eeh 6c144faa4c Allow multiple drivers to share one interrupt vector. 2000-06-08 23:01:22 +00:00
eeh 1b31fdcbb7 Fix uninitialized variable bug. 2000-06-08 22:58:42 +00:00
eeh 1dfab2070a Override optimization for files that break gcc. 2000-06-08 21:25:18 +00:00
eeh 94ffeedb49 Allow for cacheable device maps (in case there's some RAM out there). 2000-06-08 17:59:32 +00:00
eeh 00e45ca869 Print all 64-bits of TTE data in db_pmap_kernel(). 2000-06-08 17:45:29 +00:00
eeh 6baca0c1ad Fixup signed/unsigned issues so 32-bit addresses are not sign extended. 2000-06-08 17:43:24 +00:00
eeh 860feb4e74 Fix ordering of sync operations depending on whether it's PRE- or POST-. 2000-06-08 17:41:46 +00:00
eeh a273b333a3 Support large (>1 page) DVMA maps so UltraSPARC IIi will work. 2000-06-08 16:17:29 +00:00
eeh 08af61208e Fix DVMA base address calculations. 2000-06-08 15:23:44 +00:00
mrg ee41ef7a04 ensure an ebus really does exist in ebus_match; fixes spurious attachments with the ebus on a hme pci card. 2000-06-08 06:52:25 +00:00
pk 9a8d03d6bd Add a couple of missing semi-colons. 2000-06-07 09:16:41 +00:00
soren a9aa2abf94 defopt SYSCALL_DEBUG. 2000-06-06 18:52:30 +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
eeh 03228642f7 Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work.  (Also add some bus_space_*() debug hooks).
2000-06-02 22:56:32 +00:00
eeh f2ab1eb70c db_stack_trace_cmd -> db_stack_trace_print 2000-06-02 15:38:32 +00:00
eeh 94084a33f8 New softintr interface. 2000-06-02 15:36:53 +00:00
cgd 47449a63d2 kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
2000-06-01 00:04:50 +00:00
thorpej 8c2d00aaeb Add a comment about needing to initialize p_cpu when multiple
processors are supported.
2000-05-31 05:09:14 +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
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
eeh 907ed5fa81 Add `-D' flag to drop to the PROM before jumping to the kernel. 2000-05-26 22:59:51 +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
thorpej 7d2fdbcb55 Don't set `runtime' here; it's done at the end of mi_switch().
cvS: ----------------------------------------------------------------------
2000-05-26 05:27:29 +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
eeh ca743bac9a Use the PCI function code to distinguish simba bus A from bus B instead
of the current hack.
2000-05-24 20:27:52 +00:00
eeh c965d1deec If we have sparse PCI spaces we can run out of IO map space when mapping
PCI config space.  Since PCI config space is mostly used by PCI bus drivers,
we won't actually map it in.  Instead we use MMU bypass ASI accesses to read
and write PCI config space.
2000-05-24 20:24:58 +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
eeh 8b4fa50a4d Need to be able to turn off pcons. 2000-05-23 05:11:28 +00:00
eeh 62d33e59ff Align things pessimistically so a 64-bit kernel will accept symbols from a 32-bit loader. 2000-05-22 19:15:33 +00:00
mrg 296eaaa36d add two new CPU_ISXXX versions: CPU_ISSUN4U, CPU_ISSUN4MOR4U 2000-05-22 02:35:23 +00:00
eeh 17c567f9de Oops. Seems like we do need this file to make pcons work. 2000-05-20 14:23:12 +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 dd5143017a Use the new emergency fallback PROM console driver. 2000-05-19 05:28:47 +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
mrg 4bd0bb352b this file has not been used for a long time. 2000-05-19 01:09:21 +00:00
mrg 0cd44feb0e fix if/ifdef mistake 2000-05-17 10:28:14 +00:00
mrg 20bc66f592 - add some psycho interrupt debugging stuff (#if 0'ed out)
- fix arguments passed in psycho_dmamap_load_raw()'s declaration, and
  what it passes to it's parent bus.
2000-05-17 10:17:01 +00:00
mrg eee5e33e8a - in iommu_remove(), move len adjustment outside if statement, leaving
just one copy of this.
- remove duplicate setting of sgsize in iommu_dvmamap_load().
- fix DIAGNOSTIC check in iommu_dvmamap_load_raw() to panic() in unexpected
  conditions only (not normal ones), and also add an extra case.
2000-05-17 09:53:53 +00:00
mrg 53fa9da4df move zs_attach() to after the setting of the console device, to avoid
having cn_dev being 0 and thus cnopen() being called recursively.  this
fixes this problem for zs-based console's only.
2000-05-17 09:28:22 +00:00
mrg 651712a140 add a note about US IIi and PCI_INTERRUPT_LINE register 2000-05-17 09:25:58 +00:00
mrg 6dad37e26a expand a comment slightly. 2000-05-17 09:25:27 +00:00
mrg f2a19f58b5 fix || vs. && bug, and clean up some cruft. 2000-05-17 09:16:44 +00:00
mrg 0eeab9735f fix another warning. 2000-05-17 09:12:10 +00:00
eeh 3b90b5c5c4 Add support for bus_dma_load_raw() so the le driver will work again. 2000-05-17 02:31:12 +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
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
augustss 3a6e3a4670 Add (sometimes commented out) MIIVERBOSE option. 2000-05-08 13:49:44 +00:00
mrg 0ce52a2a08 implement U2P PCI support in psycho_init. this is completely untested. 2000-05-06 04:15:35 +00:00
hannken 0b2854eb6c Fix for lint during build of libc. 2000-05-05 20:12:00 +00:00
thorpej 855b79db92 Let each platform typedef the new __cpu_simple_lock_t, which should
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
2000-05-02 04:41:04 +00:00
thorpej a2edf1690f Fix a declaration inside __ldstub(). 2000-05-01 00:46:29 +00:00
thorpej dc8f3d3b3f Oops, install <machine/lock.h> on these systems, too. 2000-04-29 03:45:42 +00:00
thorpej f51470a514 Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED.  These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case).  Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
2000-04-29 03:31:45 +00:00
mrg dab52c26ad - add a note about streaming buffers and US IIi not having them.
- make some debugging messages in iommu_remove() saner and add some more.
- decrement 'len' in the no streaming buffer case, also.
- in iommu_dvmamem_map(), do not enter these mappings into the IOMMU,
  only into the CPU (the former is done at _load time).
- make a panic that shouldn't happen a DIAGNOSTIC.
2000-04-25 14:59:38 +00:00
eeh 5099c60132 If we trap due to a bad kernel stack, try to switch to the interrupt strack
before breaking into the debugger.
2000-04-22 22:06:06 +00:00
mrg 1013298c2a whole bunch of changes:
- merge IOMMU DVMA code from sbus/psycho into iommu.c.  this code was
  identical and a few minor inconsistencies had crept in.  this way
  keeps them all in sync.
- with this code gone from psycho, merge the psycho.c and psycho_bus.c
  files.  same with ebus/ebus_bus.c.  delete the _bus.c files.
- add a _ds_boundary member to the dma segment structure, so that later
  dma mappings can find this value.
- set _ds_boundary in machdep.c:_bus_dmamem_alloc().
- kill much dead code.
2000-04-22 17:05:59 +00:00
mrg db956d0701 s#\b#\n# so an error message appears correctly. 2000-04-22 16:42:25 +00:00
mrg 5aa4575432 - convert to DPRINTF() style debug messages.
- kill dead code.
- use the sbus dv_xname to construct a dvma map map, to pass to
  extent_alloc(), to help support multiple sbusses
2000-04-22 12:36:29 +00:00
mrg 6e576e3c03 clean up mdallocsys(). 2000-04-22 12:03:33 +00:00
pk e5ab0feccc Have prom_cngetc() wait until input has been typed. 2000-04-19 08:15:06 +00:00
itojun 3be41bae18 add stf pseudo interface (commented out due to possible security risks) 2000-04-19 06:50:27 +00:00
mrg 19a31e7b5e add a newline to this fake autoconfig line. 2000-04-19 02:26:08 +00:00
eeh c58f0ee9cd Prevent the system from getting watchdog reset by returning directly to user
mode if restoring the user window traps.  Also reduce the time we run with
%tl>0.
2000-04-18 02:12:25 +00:00
eeh 2aec15d3d3 Turn off traptrace before printing a panic message so we don't flush the useful
traces out with the printf guts, and wrap some lines at 80 columns.
2000-04-18 02:07:57 +00:00
mrg 2aba26f773 - auxio cleanup and sbus support.
- make GENERIC64 include GENERIC and set the 3 optoins it needs.  suggested
  by hubert feyrer.
- add a comment that we maybe should use the `bpp' driver, not the lpt, on
  the ebus because the `bpp' driver does DMA already.
- ebus_attach_args got a member renamed
2000-04-15 03:08:12 +00:00
mrg e4ca29ac00 kill dead code 2000-04-15 03:07:38 +00:00
tsutsui 7865e586d3 Typo in comments. (Zilog 8350 -> 8530) 2000-04-14 13:29:57 +00:00
mrg 01ff053e58 add bpt and lpt. fixes final gcc warnings for GENERIC. 2000-04-14 08:36:39 +00:00
mrg af6a8541e4 add some casts to (u_long) to shut up gcc. cleanup unused variables 2000-04-14 08:29:03 +00:00
mrg 726f5f3169 two more compiler warnings killed. 2000-04-14 04:08:26 +00:00
eeh 9b019404f8 Apparently gas 2.9.5 (don't ask) does not like to add values to %lo()
directives so move the additions inside %lo() to make it happy.
Hopefully this won't break older versions.
2000-04-13 18:40:27 +00:00
eeh 92aaaad1e1 Make /etc/mk.conf optional for kernel builds. 2000-04-13 16:57:51 +00:00
mrg fd85c1c4a2 avoid a potential memory leak. 2000-04-13 14:39:34 +00:00
mrg 5792df1cf9 - do the "options<space><tab>" thing everywhere.
- disable COMPAT_AOUT.
- enable hme at sbus/pci
- enable bpp at sbus
- clean up esp attachments
- enable all xxphy's
- sync GENERIC & GENERIC64.
2000-04-13 11:23:14 +00:00
mrg fa13d97855 this does not need auxreg.h 2000-04-13 09:54:43 +00:00
mrg b60fe7f45a store all the physical address bits. 2000-04-13 09:53:49 +00:00
mrg e7f3d69787 this does not need auxreg.h 2000-04-13 09:52:46 +00:00
mrg 542f08a422 add a version file. 2000-04-13 09:38:12 +00:00
mrg f2ab01bf42 copy the "sparc" clean/cleandir target code, so that "cleandir" actually does a "clean" 2000-04-13 09:23:38 +00:00
pk a388797ed5 Ignore unknown devices on mainbus. 2000-04-12 11:40:12 +00:00
chs 1f7a988bd2 unconditionalize "ifdef sparc". 2000-04-12 04:06:41 +00:00
mrg 1fdef1b204 deja vu: add "struct device *booted_device;" so raidframe links. 2000-04-12 00:47:10 +00:00
mrg b2d31a5cc9 - fix a speeling error
- rename some numbered labels to be a bit less confusing.
- remove dead code
- fix a debug error message (argh!)
2000-04-10 16:28:56 +00:00
mrg cb2b15a484 - UltraSPARC IIi does not have streaming buffers; don't try to find it's
diag regsiter to work out why the (non-existant) strbufs don't work.
- check for malloc failure in _all_ places.
- setup the PCI control register as recommended in the IIi users manual.
2000-04-10 16:11:23 +00:00
mrg 79f22c2c51 UltraSPARC IIi CPU has bits 6-10 of the INO hardwired to 1. when we
install an interrupt handler, make sure we set these bits to 1.  now,
interrupt_vector in locore can find our registered interrupt handlers
and at least try to setup a call to them.
2000-04-10 16:07:50 +00:00
mrg 304778e6c2 - IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.
2000-04-10 16:05:13 +00:00
mrg f7618dcb04 add 4 more bits for the PCI control register 2000-04-10 16:04:02 +00:00
pk cfadc0991a Get a kernel without DDB to build. 2000-04-10 13:34:18 +00:00
mrg e2ed27832e with these two, POWEROFSEVEN now compiles cleanly. 2000-04-08 15:15:41 +00:00
mrg 171d3a1576 don't use -Wuninitialized 2000-04-08 04:46:15 +00:00
mrg d0be8351d9 add casts to stop gcc complaining 2000-04-08 04:45:41 +00:00
mrg 4583d39d24 correct the pci ino->ipl table. shut up gcc once more. 2000-04-08 04:35:01 +00:00
mrg 5b5f175f38 - store the ebus's parent so we can find the IOMMU
- use generic iommu routines in the ebus code (uses the above)
- add some more comments.
2000-04-08 04:33:09 +00:00
mrg d360a37afd - remove unused variable.
- include <sparc64/sparc64/cache.h> to get cache_flush() prototype.
- remove an unnecessary cast.
2000-04-08 04:17:31 +00:00
mrg 34d04ff6db include <ddb/db_output.h> to get the db_printf() prototype. 2000-04-08 03:09:00 +00:00
mrg 748cfc6b99 rearrange a little to accommodate real SUNW,psycho support. 2000-04-08 03:08:20 +00:00
mrg 70e38e4034 actually, i wrote these in 2000 2000-04-08 03:07:07 +00:00
thorpej 4044b5a41c Use separate callouts for motor-on and motor-off. Fixes a condition
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.

From enami tsugutomo <enami@sm.sony.co.jp>.
2000-04-07 16:58:53 +00:00
mrg 580ccd66ad make this work with years-old new-style mdsetimage, etc. 2000-04-06 13:39:26 +00:00
mrg 966add799c avoid some more compiler warnings, and fix a couple of errors. 2000-04-06 13:32:49 +00:00
mrg 6b64191106 add some more casts to shut up gcc. 2000-04-06 12:49:00 +00:00
mrg 736ce53ae5 - #include "opt_ddb.h" to get correct Debugger() prototype.
- add some (u_long) casts to shut up GCC.
2000-04-06 12:17:26 +00:00
mrg 2809e2c3c4 cast to u_int64_t before shifting by 32 bits; avoids compiler warning. 2000-04-06 12:08:34 +00:00
mrg c4436b3c73 add some comments, clean this up a bit. 2000-04-05 14:30:44 +00:00
mrg 410a32c515 enable auxio at ebus. 2000-04-05 14:28:55 +00:00
mrg 21adbdd7d0 after enabling the streaming buffer, check to see that it is actually
there and enabled.  if it appears to be missing or not enabled, do
not use it.
2000-04-05 14:26:51 +00:00
mrg ff95126059 add a couple of comments. 2000-04-05 14:23:45 +00:00
mrg b986c284fe correct a message 2000-04-05 14:23:27 +00:00
mrg cb71509569 be slightly more verbose when attaching ebus devices. 2000-04-05 12:30:42 +00:00
mrg add6dbf96c clean this up some. 2000-04-05 08:03:03 +00:00
mrg f4e31c4b14 attach auxio at ebus 2000-04-05 07:58:44 +00:00
mrg 9933bfdf9c driver for the PCI/ebus AUXIO registers. 2000-04-05 07:52:48 +00:00
mrg 508af4078f - go through a list of kernels like other ports do.
- don't drop off the partition from the boot device, so that we
  can boot from partitions that aren't the start of the disk...
2000-04-05 06:23:33 +00:00
mrg 66ca8568fe minor cleanup. 2000-04-05 06:21:14 +00:00
mrg f3468bd3d8 use DPRINTF() style debug messages; s/sbus/iommu/ in a few remaining places. 2000-04-05 05:59:03 +00:00
mrg fe2a55b12c include opt_ddb.h. use generic iommu enter/remove/flush routines 2000-04-05 03:08:03 +00:00
mrg ef18ba9083 include opt_ddb.h 2000-04-05 03:05:15 +00:00
mrg 7928eb6d98 add "hme at pci" support. also, add "nsphy at mii" and other mii stuff 2000-04-05 02:34:19 +00:00
minoura 78b105698a Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.
2000-04-02 15:35:47 +00:00
tsutsui 58714261cc Remove register declarations. 2000-03-30 11:37:21 +00:00
kleink 230876cf26 Merge parts of chs-ubc2 into the trunk:
* Remove the casts to vaddr_t from the round_page() and trunc_page() macros to
  make them type-generic, which is necessary i.e. to operate on file offsets
  without truncating them.
* In due course, cast pointer arguments to these macros to an appropriate
  integral type (paddr_t, vaddr_t).

Originally done by Chuck Silvers, updated by myself.
2000-03-26 20:42:21 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00
cgd 7c35662066 add commented out option PCI_CONFIG_DUMP whever there's a PCIVERBOSE. 2000-03-22 00:58:16 +00:00
pk 3eb54fdef9 We need cons_attach_input(). 2000-03-21 10:56:23 +00:00
pk 436638ab3a Call rcons_ttyinit() on first open. 2000-03-20 11:27:16 +00:00
pk 2ca556b136 Nuke dead code. 2000-03-19 14:41:48 +00:00
pk f5839cdae8 Minimal changes to accomodate the console input channel attachment
changes in the keyboard driver (see /sys/dev/sun/kbd*)
2000-03-19 13:29:14 +00:00
tron e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +00:00
mycroft 9e21b6555a In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
mycroft 02905321b2 Foolish consistency. Mainly, always use underscores and sys/endian.h. 2000-03-16 15:09:34 +00:00
eeh 3b51289caa Revamp interrupts again:
Fix a bug causing interrmittent panics in interrupt dispatch.
	Use interrupt vectors for softints.
	Add a new send_softint interface.
	Improved D$ flushing.
	Improve traptrace and other debugging enhancements.
2000-03-16 02:36:56 +00:00
oster 1bad2e1909 Add the RAIDframe device major to the machine-dependent config files
so that the right entries get added to dev_name2blk[].  Needed for / on RAID.
(Whoops!  I missed checking these in when adding the RAID_AUTOCONFIG stuff.)
2000-03-14 15:56:51 +00:00
soren 735236ed02 Fix doubled 'the the' in comment. 2000-03-14 00:04:19 +00:00
soren 95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +00:00
kleink ad7dbd825c Define ISO C99 (unsigned) long long (min, max) symbols. 2000-03-07 19:33:00 +00:00
tsutsui d16c6f3272 Use DISKPART/DISKMINOR/DISKUNIT instead of dkpart/dkminor/dkunit. 2000-03-07 15:55:14 +00:00
thorpej a183d34f04 - Implement cnbell() -- ring the console bell. The cn_bell entrypoint
is optional.
- Add cn_bell to statically allocated consdevs as appropriate.
2000-03-06 21:36:05 +00:00
eeh 4a8841ada2 Try to page align all segments up to 4MB pages. 2000-03-06 01:29:04 +00:00
simonb 4eb55e447c Do the "<space><tab>" thing with the RAID_AUTOCONFIG option. 2000-02-29 06:32:20 +00:00
oster d9c47013b2 Defopt 'RAID_AUTOCONFIG'. Adding 'options RAID_AUTOCONFIG' turns on
the component auto-detection and auto-configuration of RAID sets.
Also, add "#options RAID_AUTOCONFIG" to the GENERIC config files.
2000-02-26 17:35:33 +00:00