Initial import.  Gets as far as nfs_mountroot.
Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection.  Notable features:

	- All ports behave in a consistent manner regarding root
	  device selection.
	- No more "options GENERIC"; all kernels have the ability
	  to boot with RB_ASKNAME to select root device and file system
	  type.
	- Root file system type can be wildcarded; a machine-independent
	  function will try all possible file systems for the selected
	  root device until one succeeds.
	- If the root file system fails to mount, the operator will
	  be given the chance to select a new root device and file
	  system type, rather than having the machine simply panic.
	- nfs_mountroot() no longer panics if any part of the NFS
	  mount process fails; it now returns an error, giving the
	  operator a chance to recover.
	- New, more consistent, config(8) grammar.  The constructs:

		config netbsd swap generic
		config netbsd root on nfs

	  have been replaced with:

		config netbsd root on ? type ?
		config netbsd root on ? type nfs

	  Additionally, the operator may select or wildcard root file
	  system type in the kernel configuration file:

		config netbsd root on cd0a type cd9660

	  config(8) now requires that a "root" specification be
	  made.  "root" may be wired down or wildcarded.  "swap" and
	  "dump" specifications are optional, and follow previous
	  semantics.

	- config(8) has a new "file-system" keyword, used to configure
	  file systems into the kernel.  Eventually, this will be used
	  to generate the default vfssw[].

	- "options NFSCLIENT" is obsolete, and is replaced by
	  "file-system NFS".  "options NFSSERVER" still exists, since
	  NFS server support is independent of the NFS file system
	  client.

	- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
	  will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot().  Only SPARC, i386, and Alpha ports have been
tested at this time.  Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
syscalls.master changed; regen.
Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection.  Notable features:

	- All ports behave in a consistent manner regarding root
	  device selection.
	- No more "options GENERIC"; all kernels have the ability
	  to boot with RB_ASKNAME to select root device and file system
	  type.
	- Root file system type can be wildcarded; a machine-independent
	  function will try all possible file systems for the selected
	  root device until one succeeds.
	- If the root file system fails to mount, the operator will
	  be given the chance to select a new root device and file
	  system type, rather than having the machine simply panic.
	- nfs_mountroot() no longer panics if any part of the NFS
	  mount process fails; it now returns an error, giving the
	  operator a chance to recover.
	- New, more consistent, config(8) grammar.  The constructs:

		config netbsd swap generic
		config netbsd root on nfs

	  have been replaced with:

		config netbsd root on ? type ?
		config netbsd root on ? type nfs

	  Additionally, the operator may select or wildcard root file
	  system type in the kernel configuration file:

		config netbsd root on cd0a type cd9660

	  config(8) now requires that a "root" specification be
	  made.  "root" may be wired down or wildcarded.  "swap" and
	  "dump" specifications are optional, and follow previous
	  semantics.

	- config(8) has a new "file-system" keyword, used to configure
	  file systems into the kernel.  Eventually, this will be used
	  to generate the default vfssw[].

	- "options NFSCLIENT" is obsolete, and is replaced by
	  "file-system NFS".  "options NFSSERVER" still exists, since
	  NFS server support is independent of the NFS file system
	  client.

	- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
	  will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot().  Only SPARC, i386, and Alpha ports have been
tested at this time.  Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
syscalls.master changed; regen.
Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection.  Notable features:

	- All ports behave in a consistent manner regarding root
	  device selection.
	- No more "options GENERIC"; all kernels have the ability
	  to boot with RB_ASKNAME to select root device and file system
	  type.
	- Root file system type can be wildcarded; a machine-independent
	  function will try all possible file systems for the selected
	  root device until one succeeds.
	- If the root file system fails to mount, the operator will
	  be given the chance to select a new root device and file
	  system type, rather than having the machine simply panic.
	- nfs_mountroot() no longer panics if any part of the NFS
	  mount process fails; it now returns an error, giving the
	  operator a chance to recover.
	- New, more consistent, config(8) grammar.  The constructs:

		config netbsd swap generic
		config netbsd root on nfs

	  have been replaced with:

		config netbsd root on ? type ?
		config netbsd root on ? type nfs

	  Additionally, the operator may select or wildcard root file
	  system type in the kernel configuration file:

		config netbsd root on cd0a type cd9660

	  config(8) now requires that a "root" specification be
	  made.  "root" may be wired down or wildcarded.  "swap" and
	  "dump" specifications are optional, and follow previous
	  semantics.

	- config(8) has a new "file-system" keyword, used to configure
	  file systems into the kernel.  Eventually, this will be used
	  to generate the default vfssw[].

	- "options NFSCLIENT" is obsolete, and is replaced by
	  "file-system NFS".  "options NFSSERVER" still exists, since
	  NFS server support is independent of the NFS file system
	  client.

	- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
	  will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot().  Only SPARC, i386, and Alpha ports have been
tested at this time.  Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
syscalls.master changed; regen.
Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection.  Notable features:

	- All ports behave in a consistent manner regarding root
	  device selection.
	- No more "options GENERIC"; all kernels have the ability
	  to boot with RB_ASKNAME to select root device and file system
	  type.
	- Root file system type can be wildcarded; a machine-independent
	  function will try all possible file systems for the selected
	  root device until one succeeds.
	- If the root file system fails to mount, the operator will
	  be given the chance to select a new root device and file
	  system type, rather than having the machine simply panic.
	- nfs_mountroot() no longer panics if any part of the NFS
	  mount process fails; it now returns an error, giving the
	  operator a chance to recover.
	- New, more consistent, config(8) grammar.  The constructs:

		config netbsd swap generic
		config netbsd root on nfs

	  have been replaced with:

		config netbsd root on ? type ?
		config netbsd root on ? type nfs

	  Additionally, the operator may select or wildcard root file
	  system type in the kernel configuration file:

		config netbsd root on cd0a type cd9660

	  config(8) now requires that a "root" specification be
	  made.  "root" may be wired down or wildcarded.  "swap" and
	  "dump" specifications are optional, and follow previous
	  semantics.

	- config(8) has a new "file-system" keyword, used to configure
	  file systems into the kernel.  Eventually, this will be used
	  to generate the default vfssw[].

	- "options NFSCLIENT" is obsolete, and is replaced by
	  "file-system NFS".  "options NFSSERVER" still exists, since
	  NFS server support is independent of the NFS file system
	  client.

	- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
	  will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot().  Only SPARC, i386, and Alpha ports have been
tested at this time.  Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
syscalls.master changed; regen.
Remove redundant "sysparam" in the "sysparam_list" rule.  (Thanks, Chris!)
Added conditional include of iommu kernel driver manipulation routines.
Fixed a few comments.
Add an introductory comment about pte.h vs mc68851.h
Move sun3x_round_up_page() to pte.h
Define struct mmu_rootptr here.
Add an introductory comment about pte.h vs mc68851.h
Move sun3x_round_up_page() to here.
Before dropping into the PROM monitor, restore its CPU Root Pointer (CRP),
and restore our own CRP if we resume.  Make sure the string passed to
mon_reboot() is in our data segment where the PROM can see it.
Pretend loadcrp() takes an int arg for now.
Probably should be (struct mmu_rootptr *)
Make sure the string passed to mon_reboot() is in our data segment
where the PROM can see it.  (Bug found by Jeremy  -- Thanks!)
Move declaration of struct mmu_rootptr to mc68851.h
Kill a cast that is now unnecessary.
Update from trunk.
Remove an accidental local declaration of a variable that caused
an attribute lookup on whatever was in stack-land, rather than the
intended "ifnet".
Eliminate ambiguity in a set of nested if/elses, which caused swdevt[]
to not be emitted.  Problem pointed out by Micheal Hitch.