Commit Graph

246 Commits

Author SHA1 Message Date
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
scw
bef00d4895 m68k syscall rototill:
- Switch all m68k-based ports over to __HAVE_SYSCALL_INTERN.
 - Add systrace glue.
 - Define struct mdproc in <m68k/proc.h> instead of <machine/proc.h>.
   (They were all defined exactly the same anyway, other than a couple
   of the MDP_* flags.)
2002-07-13 08:28:40 +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
christos
3b50728cf4 MD systrace gluons. 2002-06-17 16:32:57 +00:00
lukem
fde6ae6f04 Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
2002-06-17 05:14:02 +00:00
thorpej
d941ddfee0 Don't use -traditional-cpp if HAVE_GCC3. 2002-06-04 21:39:09 +00:00
thorpej
002ed08e32 Fix 2 sequence point errors. 2002-05-30 22:43:07 +00:00
thorpej
c40766dbee Add missing "__volatile" to the declaration of enable_reg_soft (the
extern decl in enable.h already has volatile).
2002-05-30 22:40:31 +00:00
matt
0dc8ee943d Eliminate more commons or redundant declarations. 2002-05-14 02:58:32 +00:00
matt
0a6d35b7ed Nuke local extern label_t *db_recover; it's now in <ddb/db_extern.h> 2002-05-13 20:30:07 +00:00
jdolecek
77a65b5e56 use _KERNEL_OPT rather than _KERNEL && !_LKM 2002-05-11 09:39:25 +00:00
atatat
d1b3852365 Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
2002-04-25 15:06:20 +00:00
gmcgarry
6e066ba77a Add commented-out USERCONF option. Mainly useful for install media
and can be optionally enabled based on miniroot and ramdisk size
requirements.
2002-04-12 08:10:45 +00:00
lukem
d213d804f7 Rename MEMORY_DISK_SIZE (formerly MINIROOTSIZE) to MEMORY_DISK_ROOT_SIZE,
which was suggested by Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> as
being more consistent with what it's controlling...
2002-04-02 05:30:34 +00:00
fredette
3ba7f2074a Added missing DEV_ constants. 2002-03-22 00:28:55 +00:00
fredette
6db09399a0 Added bits to use the console code under sys/arch/sun2 and
sys/dev/sun.
2002-03-22 00:28:08 +00:00
fredette
d2550b2ba7 Added the console and zs code now found under sys/arch/sun2. 2002-03-22 00:25:56 +00:00
fredette
5268abfc97 sc_btype has been removed from struct bwtwo_softc. 2002-03-22 00:24:45 +00:00
fredette
453e503b32 Added support for the sun2 zs serial ports. As this driver
is very common on Suns, it could be made shared under sys/dev/sun.
2002-03-22 00:23:53 +00:00
fredette
ae1f6b9ea8 Added bits to complete the sun2 console code. These are
virtually identical copies of files under sys/arch/sparc/dev,
and one day they will be merged under sys/dev/sun.
2002-03-22 00:22:43 +00:00
christos
7e277b5782 kill remaining PS_STRINGS instances. 2002-03-20 17:59:22 +00:00
lukem
cd19d52695 * rename MINIROOTSIZE to MEMORY_DISK_SIZE, so that all md(4) options
are now consistently named
* fold opt_mdsize.h into opt_md.h
2002-03-10 19:56:37 +00:00
thorpej
a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
tsutsui
3c8b0446fe Change type of dumpmag to u_int32_t since it is actually
a 32bit unsigned magic number.
As per discussion on tech-kern, and fixes port-sparc64/11949.
2002-03-06 13:10:18 +00:00
simonb
64c7743a05 Don't "extern int cold;" - this is in <sys/kernel.h>. 2002-03-04 02:19:07 +00:00
simonb
4324f37586 Use "#define<tab>". 2002-02-28 03:17:23 +00:00
christos
e8116a8f5b - Use DEV_ constants, instead of documenting the numbers!
- Delete cdev_decl(mm); where appropriate, and other hand-crufting [hi powerpc!]
2002-02-27 01:20:51 +00:00
christos
6b030ee036 - define other DEV_ constants that the local port uses.
- delete cdev_decl(mm) since <sys/conf.h> does it.
2002-02-27 01:19:03 +00:00
simonb
d9ab16ba2f Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
2002-02-26 15:13:19 +00:00
chs
b744097a5f allow writing to write-only mappings. fixes PR 3493. 2002-02-14 07:08:02 +00:00
thorpej
07d023a3aa Define ELF32_EHDR_FLAGS_OK()/ELF64_EHDR_FLAGS_OK() and use it
as an added measure to make sure that we can execute a binary.
These default to (1) if elf_machdep.h does not override them.

On Sun2, ELF32_EHDR_FLAGS_OK() checks for the presense of EF_M68000,
since the 68010 cannot run binaries for the 68020-and-up.
2002-01-28 22:15:54 +00:00
thorpej
9c3a981460 Just use the stock m68k/elf_machdep.h for now, so that things compile.
A patch to handle EF_M68000 will be posted shortly.
2002-01-28 21:52:49 +00:00
thorpej
cde2b1d9c7 Clean up CPP flags. 2002-01-28 21:29:46 +00:00
jdolecek
6d265bd894 add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
2002-01-27 13:23:08 +00:00
oster
39b858e3bf Add new RF_* options for RAIDframe bits that are no longer built by default.
While we're here, enable RAIDframe (and RAID_AUTOCONFIG) by default for
architectures that I'm comfortable can deal with it being on by default.

Also: bump the number of 'raid' devices from 4 to 8, since 4 seems to
be insufficient in practise.
2002-01-19 18:45:06 +00:00
manu
5f90ae55b5 Added clockctl 2002-01-12 14:52:40 +00:00
martin
b506d6e135 Add PPPoE to all generic kernels that should be able to use it.
XXX TODO: do this for INSTALL kernels too, add sysinst support and make the
XXX needed binaries available on the ramdisk root fs.
2001-12-28 12:21:52 +00:00
fredette
a366516238 Added ifmedia(4) support. 2001-12-17 18:14:17 +00:00
fredette
9976af904a Remove some devices that aren't needed in INSTALL or RAMDISK
kernels, reenable NFS v3, and enable kernfs in INSTALL.
2001-12-15 22:22:13 +00:00
fredette
74e4ac42de Be sure to mark in the prototype attach args
that a physical address is required for each
device on this bus.
2001-12-15 22:13:11 +00:00
gmcgarry
bdd225baa1 Add a blurb to the top of all GENERIC files. This serves three purposes:
- to clarify some terminology
- to clarify the intention of the GENERIC file
- to cross-reference some useful man pages
2001-12-14 05:34:45 +00:00
thorpej
51535d4bf5 Add support for dumping ELF-cormat core files. 2001-12-09 23:05:56 +00:00
fredette
b596abc4ed Picked up some old scheduler changes. Now the sun2 locore
corresponds tightly to revision 1.81 of the sun3 locore.
2001-12-07 05:24:56 +00:00
fredette
2fe9375188 Tweaked whitespace and, in comments only, added % to make this
file much easier to compare to its sun3 cousin.
2001-12-06 21:05:12 +00:00
fredette
f1673ae4dd Abstract out a large chunk of the kernel build machinery so that new
build features (such as ross's DEBUGLIST) can easily be applied to all
ports.  This should reduce the complexity of each port's kernel
Makefile considerably.
2001-12-01 15:23:18 +00:00
fredette
d4f3b9c987 Catch-up to revision 1.135 of the sun3 pmap. This revision
corresponds tightly to that one.
2001-11-30 18:22:51 +00:00
fredette
a5c8b5d17f Implement bus_space_mmap. 2001-11-30 18:11:56 +00:00
fredette
d925ceec5b vm_offset_t -> vaddr_t or paddr_t, as appropriate.
Purge register qualifiers.
bcopy() -> memcpy(), bzero() -> memset()
No longer try to protect the kernel with uvm_map_protect,
pmap_bootstrap has already done this.
Now use pmap_kenter_pa/pmap_kremove when dumping, instead
of pmap_enter/pmap_remove.
2001-11-30 18:10:27 +00:00
fredette
bbb634ca9e vm_offset_t -> vaddr_t or paddr_t or db_addr_t, as appropriate.
vm_size_t -> vsize_t
Purge register qualifiers.
bcopy() -> memcpy(), bzero() -> memset()
2001-11-30 18:06:55 +00:00
fredette
94ae8e87a9 Purge vm_offset_t. 2001-11-30 17:52:33 +00:00
fredette
b9b98bff66 Convert to use genassym.cf and genassym.sh, as other ports do. 2001-11-30 15:58:24 +00:00
fredette
af0a38f1d6 In kernel config files, now mention the options SCSI_OLD_NOINQUIRY,
NFS_V2_ONLY, and VNODE_OP_NOINLINE, commented out as appropriate
for each configuration.
Convert to use genassym.cf and genassym.sh, as other ports do.
2001-11-30 15:54:31 +00:00
fredette
708a12fced A new config file for VME-only machines 2001-11-26 21:20:35 +00:00
fredette
877ea05895 Only declare the console keyboard on zs if it's a Sun-2
or later keyboard.
2001-11-26 18:06:36 +00:00
fredette
6aa55077e7 Disabled some more things that lighter kernels don't need,
and picked up some formatting fixes from GENERIC.
2001-11-26 17:51:08 +00:00
lukem
03aef4723c cleanup:
options SPACE TAB
	makeoptions TAB
	psuedo-device TAB
	remove trailing whitespace
	replace multiple spaces -> tabs
	options "FOO" -> options FOO
	options "FOO=bar" -> options FOO=bar
	options "FOO=\"bar\"" -> options FOO="\"bar\""
2001-11-20 12:56:17 +00:00
lukem
99bccc3cab - pull in opt_kgdb.h where necessary
- replace opt_kgdb_machdep.h with opt_kgdb.h
- defparam opt_kgdb.h:
	KGDB_DEV KGDB_DEVNAME KGDB_DEVADDR KGDB_DEVRATE KGDB_DEVMODE
- move from opt_ddbparam.h to opt_ddb.h:
	DDB_FROMCONSOLE DDB_ONPANIC DDB_HISTORY_SIZE DDB_BREAK_CHAR SYMTAB_SPACE
- replace KGDBDEV with KGDB_DEV
- replace KGDBADDR with KGDB_DEVADDR
- replace KGDBMODE with KGDB_DEVMODE
- replace KGDBRATE with KGDB_DEVRATE
- use `9600' instead of `0x2580' for 9600 baud rate
- use correct quotes for  options KGDB_DEVNAME="\"com\""
- use correct quotes for  options KGDB_DEV="17*256+0"
- remove unnecessary dependancy on Makefile for kgdb_stub.o
- minor whitespace cleanup
2001-11-20 08:43:19 +00:00
soren
662f877587 MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
2001-11-15 18:06:11 +00:00
thorpej
47514a31be Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
2001-11-09 06:52:23 +00:00
jmc
6d536163de Change defaults for kernel compiles. Default all to USETOOLS?=no and have
the etc Makefile override that by putting USETOOLS into $.MAKEOVERRIDES
This way the default for kernel compiles is still to use the installed
toolchain instead of depending on $TOOLDIR. $TOOLDIR can be used by
simply adding USETOOLS=yes to the command line as usual.

Adjust each ports template to set the default no setting and also pull in
bsd.own.mk if they weren't already to ensure they'll build correctly
with the new toolchain setup.
2001-10-26 06:45:33 +00:00
thorpej
ba217c4196 Set MACHINE_ARCH explicitly in Makefiles for which it is constant.
Also, since config(8) now explcitly sets MACHINE, there is no need
to do it here in the Makefile.
2001-10-23 19:26:41 +00:00
fredette
d17c1f50bd Changed an obio to read Multibus. 2001-10-01 01:53:31 +00:00
fredette
65df8b69be Added the prom_kbdid function, to help us figure out if
the console keyboard is on the parallel interface or zs1.
2001-10-01 01:46:56 +00:00
chs
64c6d1d2dc a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps.  this is
   required now, since I've removed the globals that expose the address range.
   pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's
   no longer any need to special-case it.
 - eliminate struct uvm_vnode by moving its fields into struct vnode.
 - rewrite the pageout path.  the pager is now responsible for handling the
   high-level requests instead of only getting control after a bunch of work
   has already been done on its behalf.  this will allow us to UBCify LFS,
   which needs tighter control over its pages than other filesystems do.
   writing a page to disk no longer requires making it read-only, which
   allows us to write wired pages without causing all kinds of havoc.
 - use a new PG_PAGEOUT flag to indicate that a page should be freed
   on behalf of the pagedaemon when it's unlocked.  this flag is very similar
   to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the
   pageout fails due to eg. an indirect-block buffer being locked.
   this allows us to remove the "version" field from struct vm_page,
   and together with shrinking "loan_count" from 32 bits to 16,
   struct vm_page is now 4 bytes smaller.
 - no longer use PG_RELEASED for swap-backed pages.  if the page is busy
   because it's being paged out, we can't release the swap slot to be
   reallocated until that write is complete, but unlike with vnodes we
   don't keep a count of in-progress writes so there's no good way to
   know when the write is done.  instead, when we need to free a busy
   swap-backed page, just sleep until we can get it busy ourselves.
 - implement a fast-path for extending writes which allows us to avoid
   zeroing new pages.  this substantially reduces cpu usage.
 - encapsulate the data used by the genfs code in a struct genfs_node,
   which must be the first element of the filesystem-specific vnode data
   for filesystems which use genfs_{get,put}pages().
 - eliminate many of the UVM pagerops, since they aren't needed anymore
   now that the pager "put" operation is a higher-level operation.
 - enhance the genfs code to allow NFS to use the genfs_{get,put}pages
   instead of a modified copy.
 - clean up struct vnode by removing all the fields that used to be used by
   the vfs_cluster.c code (which we don't use anymore with UBC).
 - remove kmem_object and mb_object since they were useless.
   instead of allocating pages to these objects, we now just allocate
   pages with no object.  such pages are mapped in the kernel until they
   are freed, so we can use the mapping to find the page to free it.
   this allows us to remove splvm() protection in several places.

The sum of all these changes improves write throughput on my
decstation 5000/200 to within 1% of the rate of NetBSD 1.5
and reduces the elapsed time for "make release" of a NetBSD 1.5
source tree on my 128MB pc to 10% less than a 1.5 kernel took.
2001-09-15 20:36:31 +00:00
chris
0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
fredette
2468247eff In _bus_dmamap_load, now check the return value of pmap_extract
under DIAGNOSTIC, and fixed a bug where we weren't putting the
right size into a newly valid map.
2001-09-06 21:38:40 +00:00
fredette
b1b29ae867 Added -D__SVR4_ABI__ to XDEFS. Without it, m68k libkern assembly
functions don't return pointer values in %a0.
2001-09-06 20:04:16 +00:00
atatat
97c67a9bae Add bridge pseudo devices to GENERIC configs 2001-09-01 21:52:23 +00:00
fredette
d77c828c64 Fixed a bug processing options - we were ORing
an uninitialized auto into boothowto.
2001-08-26 18:39:15 +00:00
fredette
6682ab1fbf Under __ELF__, getvbr must return its pointer value
in %a0, not %d0.  This fixes many problems with
getting the PROM to halt and reboot the machine.
2001-08-26 17:12:11 +00:00
chs
72b6b0b123 in vunmapbuf(), call pmap_*remove() explicitly since uvm_km_free_wakeup()
will soon no longer do it for us.
2001-08-19 18:08:30 +00:00
fredette
e5769f5f01 Sometimes the ec board reports a packet length that's too large.
Try to deal with this by clipping the packet length, and, under
DEBUG, printf when we do.  Also zero out the packet status in
the buffer before we give it back to the board.
2001-08-17 20:27:12 +00:00
fredette
8b21bb0078 Under DEBUG, have a global buserr_reg that stores the
last value read out of the bus error register.
2001-08-17 00:00:26 +00:00
fredette
ba289d7421 Now treat the bus error register as 16-bits wide, even
though it has nothing in the top half.  Reading it as
only 8 bits can sometimes give erroneous values.  Under
DEBUG, also stash the value read in the buserr_reg global,
since the value is only latched until read.
2001-08-16 23:54:31 +00:00
fredette
aeb5917f66 Made prom_putchar and prom_putstr use the PROM putchar
function instead of framebuffer functions.  This makes
serial consoles work again.
2001-08-16 01:47:45 +00:00
fredette
170407cf2c Fixed a bug where we were using ETHERMIN and ETHERMTU
where we really wanted ETHER_MIN_LEN and ETHER_MAX_LEN.
2001-08-14 03:57:16 +00:00
chs
29f6bd03da use pmap_k* for buffer cache pages. 2001-07-29 23:56:33 +00:00
fredette
7c89e5223a Added. 2001-07-15 16:29:29 +00:00
fredette
bb6c8bfadd Now mimic the sparc64's handling of NKBD/NSUNKBD and NMS/NSUNMS. 2001-07-13 22:27:02 +00:00
fredette
cc468086e7 Fixed the known obio address range for the Multibus
machines to avoid bwtwo matching on obio.
2001-07-12 19:24:40 +00:00
abs
01b024cd5b Standardise TCP_COMPAT_42 as commented out, grouped with other COMPAT options,
and with the comment '4.2BSD TCP/IP bug compat. Not recommended'
Add commented out 'TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG'
(All hail amiga and atari which make some attempt to automate the
multiplicity of config files...)
2001-07-08 16:32:12 +00:00
darcy
ce0ec1e208 Add System V semaphore resource limits to each GENERIC file that has an
option for System V semaphores.  It appears that there are no overrides
in the code and each file has the following added.

 options    SYSVSEM     # System V semaphores
+#options   SEMMNI=10   # number of semaphore identifiers
+#options   SEMMNS=60   # number of semaphores in system
+#options   SEMUME=10   # max number of undo entries per process
+#options   SEMMNU=30   # number of undo structures in system
 options    SYSVSHM     # System V shared memory

If anyone thinks that this is incorrect for any of these files, please
correct it.

Note - the i386 port was not forgotten.  It was done separately.
2001-06-30 11:00:31 +00:00
fredette
3543a1603c Removed stand from SUBDIRS. 2001-06-27 19:23:16 +00:00
fredette
9dd442f913 Added a Makefile for the sun2 includes. 2001-06-27 19:22:18 +00:00
fredette
4c566b2daa Include a common header, then define macros that
give the appearance of specific attach args for
the mbio and mbmem buses.
2001-06-27 19:21:49 +00:00
fredette
2cf2ebc67c Now define a suitable ELF32_MACHDEP_ID_CASES. 2001-06-27 19:20:22 +00:00
fredette
dd2704a334 Just include a common header. 2001-06-27 19:19:22 +00:00
fredette
dced0aa013 Declare the PROM console device. 2001-06-27 19:02:26 +00:00
fredette
33575e8a53 Now don't include zsvar.h until the end. splzs() is
now defined in machine/cpu.h.  Define zs_peripheral_type.
2001-06-27 19:01:14 +00:00
fredette
f76d90d237 Added comments and fixed some macros now that I correctly
understand how to address the sun2 VME bus in the VM hardware.
2001-06-27 18:54:27 +00:00
fredette
5f35b65f29 Now define kernel_context() and restore_context(), these
are used by some sun68k common code.
2001-06-27 18:48:30 +00:00
fredette
451ebb23d2 Converted to use the new bus-specific attach args.
Added the zs_console_flags function, used to tell
MI code what zs is tied up in the console.
2001-06-27 17:41:03 +00:00
fredette
75eb351428 Converted to use the new bus-specific attach args,
and the bus_space_peek_N functions.  Now use hand-defined
macros instead of relying on structure layout to find registers.
Allocate the DMA handles here, since the MI chipset code
doesn't do that any more.
2001-06-27 17:37:04 +00:00
fredette
a63be0a0a4 Converted to use the new bus-specific attach args,
and the bus_space_peek_N functions.  Also uses the
sun68k-specific bus_space_copy{in,out} functions.
2001-06-27 17:32:44 +00:00
fredette
b480d71a7a Added an attachment for Intel ethernet (ie) at obio.
Added support for the 3Com Ethernet (ec) at mbmem.
2001-06-27 17:24:35 +00:00
fredette
1bf6975d6b Added support for the PROM console. 2001-06-27 17:04:59 +00:00
fredette
fdc8ed9a06 Updated for ELF support. 2001-06-27 17:03:10 +00:00
fredette
79f31f9463 A sun2 is also a sun68k kind of a machine, and it also uses ELF. 2001-06-27 16:59:57 +00:00
fredette
e702f4a813 Now uses the sun68k common code. Changed how the keyboard
and mouse attach.  Added support for ie at obio, the ec adapter.
2001-06-27 16:57:57 +00:00
fredette
9e33b7b680 Updated with VME machine support, a.out compat,
some zs and console changes.
2001-06-27 16:51:20 +00:00