Commit Graph

3168 Commits

Author SHA1 Message Date
lukem 3ea2e21f82 enable USERCONF by default; it's small and extremely useful to have available. 2002-09-18 02:43:53 +00:00
uwe 917eac2212 RCSID should go to .ident section.
While here add __KERNEL_RCSID.
2002-09-17 15:28:28 +00:00
ad ca0ac2c78c Driver for the Sun ZX/Leo framebuffer. This would be called leo, but the
amiga port already has a driver by that name.
2002-09-13 14:03:52 +00:00
tsutsui be0f4cfb13 Rename some auto variables which might cause misleadings. 2002-09-08 05:35:42 +00:00
tsutsui bf49a76d3b Call setcontext{4,4m}() directly when we already know the CPU type.
(inspired by OpenBSD)
2002-09-07 18:51:05 +00:00
gehenna 77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
thorpej c9dafdb84c Increase the default stack limit to 2M (from 512K on sparc and 1M
on sparc64).
2002-09-03 16:24:35 +00:00
thorpej d1523404bb Fix missing error check in sparc_bus_map(). Pointed out by uwe. 2002-08-30 20:38:31 +00:00
uwe 082c4cf032 Make sun ports use common keyboard/firm events related includes
from dev/sun.
2002-08-27 09:47:41 +00:00
thorpej 139cdc3125 Make nbuf, nswbuf, and bufpages unsigned. Make all operations on these
variables unsigned, and update places where their values are printed.
2002-08-25 20:21:33 +00:00
thorpej a9f285b0ac Put a bus's ranges in the bus space tag, and make sparc_bus_map()
perform the translation and recursion if t->ranges != NULL.  Make
sbus, cpuunit, and bootbus inherit the parent's map/mmap routines,
and delete the now-unused mapping functions.  Update all places where
bus space tags are statically allocated.
2002-08-25 17:54:57 +00:00
thorpej 067a64da4d Split the timer code up into Sun4/Sun4c, Sun4m, and MS-IIep bits, mostly
to make it more readable.
2002-08-25 16:10:35 +00:00
thorpej 0570742a0b Add a generic function to translate a device address using a
parent's "ranges" property, and use it.
2002-08-25 16:05:41 +00:00
thorpej 51b546d0bb Move the DMA tag and DVMA map into the iommu_softc, and pass the
iommu_softc in the DMA tag cookie.  This gives us a chance of supporting
systems (such as the Sun4d) which have multiple iommus.
2002-08-25 16:02:53 +00:00
thorpej d476292c05 Add Sun4d cpu-unit ASIs. 2002-08-24 17:27:21 +00:00
thorpej 41c25cb648 Add autoconfiguration support for the Sun4d "bootbus". Add a
zs @ bootbus attachment.
2002-08-24 05:26:56 +00:00
thorpej bb0558df3e Oops, don't need a DMA tag. 2002-08-23 21:49:13 +00:00
thorpej a71473b576 Add autoconfiguration glue for the Sun4d "cpu-unit". Each processor
board has 2 CPU units (one for each processor), one of which also has
a "bootbus", to which the serial ports, etc. are attached.

We can now probe/attach CPUs on a SPARCserver 1000.
2002-08-23 18:00:46 +00:00
thorpej 90817e313c Use the structures defined in bsd_openprom.h for "reg", "range",
and "intr" properties, rather than having identical-except-for-names
sbus_* and iommu_* versions.
2002-08-23 02:53:10 +00:00
thorpej de6a644cea * Refine the comment describing openprom_addr.
* Add openprom_range and openprom_intr structures.
2002-08-23 01:08:45 +00:00
uwe fdc57c1775 Add missing slash to /* notyet * 2002-08-17 02:23:18 +00:00
uwe e7bdddc025 Fix botch in previous. #ifdef DIAGNOSTIC was one instructions too early
in sparc_interrupt4m, thus breaking soft interrupts for normal 4m's.

Should fix port-sparc/17891 (thanks, Martin).
2002-08-14 14:45:37 +00:00
tsutsui 1031f6caa4 Fix cacheinfo.c_nlines for sun4 and sun4c machines.
(they are not used anyway..)
2002-08-09 14:46:04 +00:00
briggs 0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
hannken 80fb19da39 Convert to new device buffer queue interface.
Approved by: Paul Kranenburg <pk@netbsd.org>
2002-08-06 14:44:15 +00:00
uwe 5b89d2589b In DIAGNOSTIC kernels detect situation that on sun4m neither hardware
nor software interrupt pending bit is set for the current ipl.  Report
this as a "bogus" interrupt (better name anyone?).  This is a symptom
of a bug in interrupt handling in one of device drivers interrupting
at this ipl.  Reviewed by pk.
2002-08-04 14:57:34 +00:00
itojun 8dd04cdcd7 correct range check, have overflow check, fix type mismatches,
for cmap args and some other calls.  from openbsd
2002-08-03 00:12:48 +00:00
mrg 3a0d60972a bump offset by RF_PROTECTED_SECTORS if FS_RAID 2002-07-29 14:34:12 +00:00
grant b26eca1528 "DVMA coherent" -> ": DVMA coherent"
noted by Matt Thomas on icb.
2002-07-29 06:39:41 +00:00
mrg 8543c0c2bc make sparc64 friendly. 2002-07-20 11:43:43 +00:00
mrg 44a3eec3a0 sync these with the sparc64 versions. 2002-07-20 08:37:30 +00:00
thorpej 3912e469dd Rename cdev_systrace_init() to cdev_clonemisc_init(), so it can
be properly used by any misc. cloning device.  While here, correct
a comment to indicate that "open" is the only entry point and that
everything else is handled with fileops.
2002-07-19 16:38:14 +00:00
thorpej 0c9b77712e Add Sun4d "special nodes". 2002-07-18 03:22:00 +00:00
thorpej 417877e5d7 Add checks for Sun4d. Use CPU_HAS_SRMMU as appropriate. 2002-07-18 02:32:35 +00:00
thorpej 8d23955168 Add sun4d cases for early bootstrap. This is good enough to
get as far as printing the copyright on an SPARCserver 1000.
2002-07-17 16:59:09 +00:00
thorpej b122660639 More sun4m/sun4d common stuff. 2002-07-17 15:57:12 +00:00
thorpej 45af102cdd More cache/cpu stuff common to sun4m and sun4d. Note the sun4d
machines always use the Viking CPU, and cache info is not available
from the PROM, so we have to hard-code it in that case.

Rearrange some stuff to make it easier to share.
2002-07-17 15:56:20 +00:00
thorpej d7722ad8a6 Remove an unnecessary "if defined(SUN4M)" 2002-07-17 15:53:21 +00:00
thorpej 11a856f8a6 Add SUN4D ifdef cases. Use CPU_HAS_SRMMU where appropriate. 2002-07-17 14:31:46 +00:00
thorpej d681f8b1d4 Add a macro to test if the system uses the SRMMU (Sun4M || Sun4D). 2002-07-17 06:19:45 +00:00
thorpej 7d6525e9b6 Handle the CPU_NTYPES == 0 case (as we would see in bootblocks)
in the CPU types predicates.
2002-07-17 06:17:20 +00:00
thorpej 477ba79eb9 Add a CPU_ISSUN4D predicate. 2002-07-17 06:07:29 +00:00
thorpej be0b3b8b70 Instead of using a matrix of configured CPU types, first count
how many CPU types are configured into the kernel.  Then, use this
information to define the CPU predicate macros according to the
following rules:

1. If support for a CPU type is not configured into the kernel,
   then the test is always false.

2. Otherwise, if only one CPU type is configured into the kernel,
   then the test is always true.

3. Otherwise, we have to reference the cputyp variable.

Use a similar strategy for short-cutting the page size related
definitions.
2002-07-17 05:57:47 +00:00
thorpej 36fb7ee740 Remote CPU_ISSUN4OR4C and CPU_ISSUN4COR4M, and instead express them
as (CPU_ISSUN4 || CPU_ISSUN4C) and (CPU_ISSUN4C || CPU_ISSUN4M),
respectively.  The compiler can still optimize as desired by expressing
them this way, and it simplifies adding new tests.

While here, just remove CPU_ISSUN4MOR4U; it's not used by anything.
2002-07-17 04:55:56 +00:00
thorpej aa54c756ac Print out a meaningful message on the sun4d if the kernel does
not support the sun4d, like we do with sun4c and sun4m.
2002-07-17 02:57:14 +00:00
thorpej acf4b72be5 Add CPU_SUN4D. 2002-07-17 02:43:43 +00:00
thorpej 5fd1700062 Add SUN4D to the list of arch's in opt_sparc_arch.h. 2002-07-17 02:23:15 +00:00
thorpej c2a0c6fe7c Add a missing ":" when printing the delay constant message. 2002-07-14 19:42:58 +00:00
abs eb73becae2 Ensure all INSTALL config files consistantly include PIPE_SOCKETPAIR,
MALLOC_NOINLINE, and VNODE_OP_NOINLINE. The exceptions are when they
include another config files that already defines the options, or if
they are for an embedded board, just define a few extra options, and
do not already define PIPE_SOCKETPAIR.
2002-07-05 13:40:10 +00:00
thorpej 011d4d5f44 Add kernel support for having userland provide the signal trampoline:
* struct sigacts gets a new sigact_sigdesc structure, which has the
  sigaction and the trampoline/version.  Version 0 means "legacy kernel
  provided trampoline".  Other versions are coordinated with machine-
  dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
  the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
  trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions.  Instead,
  sendsig() looks up the handler by peeking in the sigacts for the
  process getting the signal (since it has to look in there for the
  trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
  its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later.  Kernel
version not bumped; we will ride the 1.6C bump made recently.
2002-07-04 23:32:02 +00:00