Commit Graph

10135 Commits

Author SHA1 Message Date
riastradh 474b19cc1c x86: Move RNG initialization to after consinit.
This ensures we have the opportunity to get feedback about early
entropy.
2021-10-28 10:46:05 +00:00
riastradh ea36eac5c0 x86: Process bootloader rndseed much sooner. 2021-10-28 10:45:48 +00:00
kim 8936637c37 Make "0 seconds" overwrite the countdown also when enter is pressed
Fixes PR misc/56486.
2021-10-28 06:13:13 +00:00
thorpej 9bd176bc31 Use the signal trampoline version constants from <sys/signal.h>. 2021-10-27 04:14:59 +00:00
christos 0faead2ffb Merge all MD __sigaction14_sigtramp.c copies into one:
- sparc and sparc64 were not using version 0 sigcontext when there were
  no arguments in the signal version. This was probably a bug.
- vax is using +1 the version numbers of the other archs.
- Only hppa was defining __LIBC12_SOURCE__ so it was getting a working
  sigcontext before. all the other ports that supported sigcontext had
  the compat code disabled.
[pointed out by thorpej, thanks!]
If we want to remove sigcontext support from userland at least now there
is less work to do so.
2021-10-26 16:16:34 +00:00
uwe 6678fa137e Fix KASSERT triggered when attaching opl at wss@pnpbios
wss has two attributes, "wss" and "audiobus", and this call didn't
specify an iattr for opl to attach to.  config_search_internal asserts
that when no iattr is specified, the parent should only have one.
2021-10-06 23:58:49 +00:00
christos e6e1893975 use l->l_cred since it is available. 2021-09-21 14:36:34 +00:00
andvar 72e44f84cb fix typos in word "successfully", mainly s/succesfully/successfully/. 2021-09-16 21:29:41 +00:00
andvar b780d9b67b fix various typos, mainly in comments. 2021-09-16 20:17:46 +00:00
nia b7fed38c88 Remove banner printing code from bootloaders, add it to libsa.
This harmonizes efiboot and the various x86 bootloaders to use shared
code for printing the banner. By friendly coincidence, it also adds
support for specifying 'banner=' in arm efiboot's boot.cfg, as on x86.
2021-09-07 11:41:31 +00:00
andvar 2e0bf311b3 fix multiplei repetitive typos in comments, messages and documentation. mainly because copy paste code big amount of files are affected. 2021-08-17 22:00:26 +00:00
andvar c74fd0bbf0 s/struture/structure/ s/structre/structure/ 2021-08-13 20:26:07 +00:00
thorpej c7fb772b85 Merge thorpej-cfargs2. 2021-08-07 16:18:40 +00:00
andvar 077d1c0f36 fix various typos in comments and log messages. 2021-08-02 12:56:22 +00:00
jmcneill b2c90ce3cf Separate MI smbios interface from MD specific code. 2021-07-21 23:16:08 +00:00
nia f3c68eb2b0 Remove uscanner(4) driver
This exists for compatibility with a Linux interface which was apparently
deprecated in Linux 2.6. There are various mailing list threads going
back to 2004 where the usefulness of this driver is discussed, but
the conclusion is that scanner software has all moved to using ugen(4)
instead, and enabling this driver will not help you scan things.
2021-06-29 10:22:33 +00:00
gutteridge 01cf0ca787 boot1.c: remove a comment that's no longer relevant/correct
In r. 1.13, a check of the return value in fd was removed, and a comment
about this ("...so keep going") added. Then in r. 1.19, the fd return
value check was reinstated (as the true underlying errno could be masked
by the fstat() call), so there is no "keep going" happening anymore.
2021-06-24 01:23:16 +00:00
nia 39a6fe3f6c efiboot (x86): add ASCII art 2021-06-22 19:53:58 +00:00
nia ed76d86923 use a single printf call for readability 2021-06-21 19:52:17 +00:00
nia 392774a8f0 biosboot: Add ASCII art. 2021-06-21 19:43:17 +00:00
simonb b1b36fc1a1 Include "opt_param.h" (ifdef _KERNEL_OPT) everywhere that MSGBUFSIZE is
referenced since some sources include <machine/param.h>.
2021-05-31 14:38:55 +00:00
mlelstv 70b14a2a2d Add "root" command to provide a BTINFO_ROOTDEVICE parameter. 2021-05-30 05:59:22 +00:00
riastradh 8726c5627f ddb/i386: Don't go out of the way to detect invalid addresses.
db_read_bytes already does this better (but didn't at the time this
check was originally added back in 1998).  Not sure if this code had
the same mistake as the amd64 code causing it to trip over its own
shoelaces, but there should be no need for it here.
2021-05-23 11:56:28 +00:00
yamaguchi f0101d0e08 Add a new link-aggregation pseudo interface named lagg(4)
- FreeBSD's lagg(4) based implementation
 - MP-safe and MP-scalable
2021-05-17 04:07:41 +00:00
christos 1dd1c64bde Merge the x86 gdt function and constant definitions 2021-04-30 13:54:26 +00:00
christos ec468a9acf Bump MAX_USERLDT_SIZE to the max size (wastes some memory). wine needs more
than PAGE_SIZE and fails spuriously.
XXX: Note the duplicate definition hacks. Should really create <x86/gdt.h>,
put the just the constants there and unify them.
This would also avoid the hack in: src/tests/lib/libi386/t_user_ldt.c#46
2021-04-30 01:09:29 +00:00
thorpej 2685996b0e Merge thorpej-cfargs branch:
Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
  actually needed.
- Don't be explicit about what interface attribute is attaching if
  the device only has one.  (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
  situations, making is visibly easier to see when indirect config is
  in play, and allowing for future change in semantics.  (As of now,
  this is just a wrapper around config_match(), but that is an
  implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance.  This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
2021-04-24 23:36:23 +00:00
simonb 28b83fe374 Whitespace: #define<tab> 2021-04-01 04:35:45 +00:00
msaitoh 334d1ee9f2 Add micphy(4). 2021-03-10 06:38:44 +00:00
jakllsch d350c9c08b enable rge(4) on x86 and evbarm64 2021-03-01 18:12:58 +00:00
jakllsch b872945336 add rge(4) to x86 ALL kernels 2021-03-01 17:53:29 +00:00
mrg 110ac605f8 introduce DDB_END_CMD and replace more than 20 copies of the same
list of NULLs and 0.  idea from rillig@.

all touched ports built, several booted.
2021-02-23 07:13:51 +00:00
nia f3ec8521a0 add a commented out compat_ossaudio wherever there's compat_linux
requested by mrg
2021-01-21 06:51:54 +00:00
nia 40b55f7254 remove compat_ossaudio from kernel modules
this is only useful with compat_linux and gets autoloaded when
compat_linux is loaded, so there's no reason to bake it into kernels
any more.
2021-01-20 13:22:07 +00:00
christos 4d9da7b2a0 make process_machdep.c included always since it provides register i/o used by
sys_process_getlwpstatus.c which is always included.
2020-10-21 13:31:50 +00:00
christos d1f9da992b harmonize process_machdep.c inclusion. 2020-10-20 20:36:06 +00:00
christos 8e8fe15a74 _KERNEL_OPT police 2020-10-19 17:47:37 +00:00
mgorny 22898a8358 Revert "Merge convert_xmm_s87.c into fpu.c"
I am going to add ATF tests for these two functions, and having them
in a separate file will make it more convenient to build and run them
in userspace.
2020-10-15 17:40:13 +00:00
mgorny f4ced9b4b9 Fix the machine-dependent ptrace requests to respect LWP number
Fix the machine-dependent ptrace register-related requests (e.g.
PT_GETXMMREGS, PT_GETXSTATE on x86) to correctly respect the LWP number
passed as the data argument.  Before this change, these requests
did not operate on the requested LWP of a multithreaded program.

This change required moving ptrace_update_lwp() out of unit scope,
and changing ptrace_machdep_dorequest() function to take a pointer
to pointer as the second argument, consistently with ptrace_regs().

I am planning to extend the ATF ptrace() register tests in the future
to check for regressions in multithreaded programs, as time permits.

Reviewed by kamil.
2020-10-15 17:37:35 +00:00
roy 98f3a8d458 vether: Add to kernel configurations
It's only enabled if the kernel enabled bridge AND tap.
Otherwise it's commented out.
2020-09-27 13:48:49 +00:00
yamaguchi f474b47c56 Added iavf(4) that is based on OpenBSD's iavf(4) implementation
reviewed by msaitoh@n.o and knakahara@n.o
2020-09-08 10:05:47 +00:00
mrg cb93b81028 add support for new GCC 9 warnings that may be too much to fix
right now.  new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree.  mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it.  (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.)  clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
2020-09-06 07:20:26 +00:00
maxv cfcb8e39af x86: rename PGEX_X -> PGEX_I
To match the x86 specification and the other OSes.
2020-09-05 07:26:37 +00:00
msaitoh 615712693e s/ressource/resource/. No functional change. 2020-08-24 05:37:40 +00:00
jdolecek dd45d45423 make COMPAT_LINUX option disabled by default
leave the option enabled only in amd64/i386 ALL kernels to make
sure it continues to be compilable also when included in kernel
2020-08-16 10:27:47 +00:00
christos 14e6a323b7 - fix lcall test
- refactor all the TRAP_SIGDEBUG printfs and use hexdump like we did on
  amd64
2020-08-11 04:30:16 +00:00
rin 1b18db475e Clean up _LKM --> _MODULE leftovers.
Note that _KERNEL is always defined for modules.
2020-08-10 10:59:33 +00:00
christos c988d5c135 PR/55547: Dan Plassche: Fix BSD/OS binary emulation.
Centralize lcall sniffer and recognize the BSD/OS flavor.
2020-08-08 19:08:48 +00:00
jdolecek 74211c75a8 move __HAVE_PCI_MSI_MSIX to <x86/pci_machdep_common.h> 2020-08-01 12:14:39 +00:00
maxv b84521f2f3 Remove references to BRIDGE_IPF, it is now compiled in by default. 2020-08-01 08:20:47 +00:00
jdolecek 5b4cbb4aa0 remove NO_PCI_MSI_MSIX again, enabling MSI for Xen Dom0 by default 2020-07-28 09:38:06 +00:00
skrll 56d53108a7 Trailing whitespace 2020-07-23 19:20:02 +00:00
maxv fdf397881b don't include opt_user_ldt.h when it is not needed 2020-07-19 13:55:08 +00:00
maxv 95a0a18880 Revert most of ad's movs/stos change. Instead do a lot simpler: declare
svs_quad_copy() used by SVS only, with no need for instrumentation, because
SVS is disabled when sanitizers are on.
2020-07-19 07:35:08 +00:00
kim 0224cafa34 Let consdev command also set speed
Adapted from PR install/55490 by Sunil Nimmagadda
2020-07-15 12:36:30 +00:00
yamaguchi 6386396aca Introduce per-cpu IDTs
This is realized by following modifications:
- Add IDT pages and its allocation maps for each cpu in "struct cpu_info"
- Load per-cpu IDTs at cpu_init_idt(struct cpu_info*)
- Copy the IDT entries for cpu0 to other CPUs at attach
   - These are, for example, exceptions, db, system calls, etc.

And, added a kernel option named PCPU_IDT to enable the feature.
2020-07-14 00:45:52 +00:00
maxv ca08b3e761 Make copystr() a MI C function, part of libkern and shared on all
architectures.

Notes:

 - On alpha and ia64 the function is kept but gets renamed locally to avoid
   symbol collision. This is because on these two arches, I am not sure
   whether the ASM callers do not rely on fixed registers, so I prefer to
   keep the ASM body for now.
 - On Vax, only the symbol is removed, because the body is used from other
   functions.
 - On RISC-V, this change fixes a bug: copystr() was just a wrapper around
   strlcpy(), but strlcpy() makes the operation less safe (strlen on the
   source beyond its size).
 - The kASan, kCSan and kMSan wrappers are removed, because now that
   copystr() is in C, the compiler transformations are applied to it,
   without the need for manual wrappers.

Could test on amd64 only, but should be fine.
2020-06-30 16:20:00 +00:00
riastradh fed64b82c2 glxsb(4): Remove rijndael dependency.
This doesn't actually seem to depend on it in any way.

XXX Compile-tested only.
2020-06-29 23:32:24 +00:00
maxv ccb28fca7d remove unused x86_stos 2020-06-24 18:09:37 +00:00
msaitoh a0e0efb77d Serialize rdtsc using with lfence, mfence or cpuid to read TSC more precisely.
x86/x86/tsc.c rev. 1.67 reduced cache problem and got big improvement, but it
 still has room. I measured the effect of lfence, mfence, cpuid and rdtscp.
The impact to TSC skew and/or drift is:

	AMD:   mfence > rdtscp > cpuid > lfence-serialize > lfence = nomodify
	Intel: lfence > rdtscp > cpuid > nomodify

So, mfence is the best on AMD and lfence is the best on Intel. If it has no
SSE2, we can use cpuid.

NOTE:
  - An AMD's document says DE_CFG_LFENCE_SERIALIZE bit can be used for
    serializing, but it's not so good.
  - On Intel i386(not amd64), it seems the improvement is very little.
  - rdtscp instruct can be used as serializing instruction + rdtsc, but
    it's not good as [lm]fence. Both Intel and AMD's document say that
    the latency of rdtscp is bigger than rdtsc, so I suspect the difference
    of the result comes from it.
2020-06-15 09:09:23 +00:00
riastradh e6eada60cf glxsb(4): Don't use prev msg's last block as IV for next msg in CBC.
This violates the security contract of the CBC construction, which
requires that the IV be unpredictable in advance; an adaptive adversary
can exploit this to verify plaintext guesses.

XXX Compile-tested only.
2020-06-14 23:19:11 +00:00
ad 8e7ee4c1cb Print a rate limited warning if the TSC timecounter goes backwards from the
viewpoint of any single LWP.
2020-06-13 23:58:51 +00:00
maxv 4660020b03 Introduce PTRACE_REGS_ALIGN, and on x86, enforce a 16-byte alignment, due
to fpregs having fxsave which requires 16-byte alignment.

Reported-by: syzbot+f44d47e617ebf7fda081@syzkaller.appspotmail.com
2020-05-30 08:41:22 +00:00
ad 838a2cc44c PR port-i386/55314: i386 no longer boots
Oops, EDI and ESI are callee saved on i386.
2020-05-28 20:03:19 +00:00
ad 39ebba0b1b mismatched END pointed out by maxv@ 2020-05-27 20:49:14 +00:00
ad 69d902d88c - Add a couple of wrapper functions around STOS and MOVS and use them to zero
and copy PTEs in preference to memset()/memcpy().

- Remove related SSE / pageidlezero stuff.
2020-05-27 19:33:40 +00:00
ad abe636970f tsc_get_timecount(): fix 64-bit return 2020-05-27 18:47:13 +00:00
jdolecek 87e318ddcb put back NO_PCI_MSI_MSIX, need to fix MSI issues reported in PR port-xen/55285
first
2020-05-26 14:03:21 +00:00
yamaguchi d6458b82e3 Obsolete VIOIF_SOFTINT_INTR
The kernel option is introduced to realize softint-based if_input.
Since the same scheme has been implemented in if_percpuq_enqueue(),
the option is no longer needed.

pointed out by ozaki-r@n.o.
2020-05-25 07:20:14 +00:00
jdolecek 9901d78369 remove NO_PCI_MSI_MSIX option, MSI is supported for XenPV Dom0 2020-05-22 16:17:42 +00:00
ad c59a67dec9 Make cpu_counter(), cpu_counter32() and tsc_get_timecount() into a single
preemption-safe routine.
2020-05-19 21:40:55 +00:00
ad 5351e0b6c5 Flag EOI on TLB shootdown IPIs after the shootdown has been processed. 2020-05-17 14:15:55 +00:00
ad 8d5e5064ef comments 2020-05-17 12:11:11 +00:00
maya 5cf9e8b81f Remove uyap, USB YAP phone firmware loader.
And the associated ezload EZ-USB code, which is only used by uyap.
It could theoretically be used by other drivers, but none of them are
in tree.

I suspect that this device isn't in use, as phone technology has improved
a lot since 2001 when uyap(4) was added to the tree.

Proposed with no objections on netbsd-users on 13 April 2020
2020-05-16 13:46:10 +00:00
ad 6b6ff23b70 Revert previous after thinking about it. It was wrong, don't need to use
an atomic to clear a PTE or set initial version unless the circumstances
call for it.
2020-05-15 22:17:45 +00:00
msaitoh 8012ca3f0e Remove extra semicolon. 2020-05-14 08:34:17 +00:00
bouyer 1e73aef6a5 MULTIPROCESSOR for dom0 should be safe now. Enable it. 2020-05-13 08:42:01 +00:00
joerg 866ac96542 Fix GCC flags for Spectre mitigation to really only apply to GCC. 2020-05-11 15:15:15 +00:00
riastradh 7302141e84 Move cpu_rng_init a little later, just after cpu_init_msrs, on x86.
This way curcpu() and curlwp are available, so that we no longer need
any annoying conditionalization in kern_entropy.c.
2020-05-08 00:52:29 +00:00
bouyer 976f6ef646 build start_xenpvh only if XEN. Fixes NET4501 build issue reported by
John D. Baker
2020-05-05 09:07:35 +00:00
jdolecek d5100c2314 add support for using MSI for XenPV Dom0
use PHYSDEVOP_map_pirq to get the pirq/gsi for MSI/MSI-X, switch also INTx
to use it instead of PHYSDEVOP_alloc_irq_vector

MSI confirmed working with single-vector MSI for wm(4), ahcisata(4), bge(4)

XXX added some provision for MSI-X, but it doesn't actually work (no interrupts
delivered), needs some further investigation; disable MSI-X for XENPV
via flag in x86/pci/pci_machdep.c
2020-05-04 15:55:56 +00:00
bouyer bc3a423bb9 HANDLE_DEFERRED_FPU has to be donne with interrupt disabled;
move it before STIC.
Fix fpudna panic on i386 PV
2020-05-02 18:49:57 +00:00
bouyer f94c4271cb Move x86_hotpatch() in !XENPV section. Fixes XEN3* builds. 2020-05-02 17:14:01 +00:00
bouyer d5c9d50fb2 Introduce Xen PVH support in GENERIC.
This is compiled in with
options XENPVHVM
x86 changes:
- add Xen section and xen pvh entry points to locore.S. Set vm_guest
  to VM_GUEST_XENPVH in this entry point.
  Most of the boot procedure (especially page table setup and switch to
  paged mode) is shared with native.
- change some x86_delay() to delay_func(), which points to x86_delay() for
  native/HVM, and xen_delay() for PVH

Xen changes:
- remove Xen bits from init_x86_64_ksyms() and init386_ksyms()
  and move to xen_init_ksyms(), used for both PV and PVH
- set ISA no-legacy-devices property for PVH
- factor out code from Xen's cpu_bootconf() to xen_bootconf()
  in xen_machdep.c
- set up a specific pvh_consinit() which starts with printk()
  (which uses a simple hypercall that is available early) and switch to
  xencons when we can use pmap_kenter_pa().
2020-05-02 16:44:34 +00:00
maxv daaf22542e Modify the hotpatch mechanism, in order to make it much less ROP-friendly.
Currently x86_patch_window_open is a big problem, because it is a perfect
function to inject/modify executable code with ROP.

 - Remove x86_patch_window_open(), along with its x86_patch_window_close()
   counterpart.
 - Introduce a read-only link-set of hotpatch descriptor structures,
   which reference a maximum of two read-only hotpatch sources.
 - Modify x86_hotpatch() to open a window and call the new
   x86_hotpatch_apply() function in a hard-coded manner.
 - Modify x86_hotpatch() to take a name and a selector, and have
   x86_hotpatch_apply() resolve the descriptor from the name and the
   source from the selector, before hotpatching.
 - Move the error handling in a separate x86_hotpatch_cleanup() function,
   that gets called after we closed the window.

The resulting implementation is a bit complex and non-obvious. But it
gains the following properties: the code executed in the hotpatch window
is strictly hard-coded (no callback and no possibility to execute your own
code in the window) and the pointers this code accesses are strictly
read-only (no possibility to forge pointers to hotpatch an area that was
not designated as hotpatchable at compile-time, and no possibility to
choose what bytes to write other than the maximum of two read-only
templates that were designated as valid for the given destination at
compile-time).

With current CPUs this slightly improves a situation that is already
pretty bad by definition on x86. Assuming CET however, this change closes
a big hole and is kinda great.

The only ~problem there is, is that dtrace-fbt tries to hotpatch random
places with random bytes, and there is just no way to make it safe.
However dtrace is only in a module, that is rarely used and never compiled
into the kernel, so it's not a big problem; add a shitty & vulnerable
independent hotpatch window in it, and leave big XXXs. It looks like fbt
is going to collapse soon anyway.
2020-05-02 11:37:17 +00:00
hannken 927881507f Remove wd* at umass?, it was dropped. 2020-05-01 14:15:41 +00:00
maxv fb30a66a1e Switch the rest of i386 to the x86_hotpatch mechanism. 2020-05-01 09:40:47 +00:00
maxv e27cc903fc Remove dead code, we are in an #ifndef XENPV block here. 2020-05-01 09:23:43 +00:00
maxv c0c1d57fb7 Use absolute jumps, and drop the PC-relative patching. We want exact
templates.
2020-05-01 09:17:58 +00:00
maxv 712bef211f Use the hotpatch framework when patching _atomic_cas_64. 2020-05-01 08:32:50 +00:00
bouyer 80f1967e4a Don't #include xen/intrdefs.h is !XEN.
Should fix third-party module builds (e.g. virtualbox)
2020-04-30 22:05:17 +00:00
maxv 00ae02df33 Switch to templates. 2020-04-30 17:17:33 +00:00
riastradh c9d3d505bf Simplify Intel RDRAND/RDSEED and VIA C3 RNG API.
Push it all into MD x86 code to keep it simpler, until we have other
examples on other CPUs.  Simplify RDSEED-to-RDRAND fallback.
Eliminate cpu_earlyrng in favour of just using entropy_extract, which
is available early now.
2020-04-30 03:29:19 +00:00
maxv 129e4c2b33 Use the hotpatch framework for LFENCE/MFENCE. 2020-04-26 14:49:17 +00:00
bouyer 1d1fb2e8a8 Disable -g, which got enabled by mistake in the bouyer-xenpvh merge 2020-04-25 16:10:06 +00:00
bouyer c24c993fe4 Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor
2020-04-25 15:26:16 +00:00
maxv 26cfc3f122 Switch to the new PTE naming. The old naming is now unused, remove it. 2020-04-25 05:17:16 +00:00
maxv 3eb99b2ae3 Give the ldt a fixed size of one page (512 slots), and drop the variable-
sized mechanism that was too complex.

This fixes a race between USER_LDT and SVS: during context switches, the
way SVS installs the new ldt relies on the ldt pointer AND the ldt size,
but both cannot be accessed atomically at the same time.
2020-04-24 16:27:27 +00:00
rin b203ba4088 Make crypto/rijindael optional again as cprng_strong does no longer
depend on it. Dependency is explicitly declared in files.foo if a
component requires it.
2020-04-22 09:15:39 +00:00
jdolecek a46ed5ed28 convert to newer HYPERVISOR_physdev_op() interface, now command and the
arg are separate arguments - this is needed for newer physdev_op commands

remove code for PHYSDEVOP_IRQ_UNMASK_NOTIFY, it is obsolete since
interface version 0x00030202 and is unsupported by newer versions of Xen

confirmed working on amd64 Dom0, i386 compile-tested only
2020-04-21 20:13:39 +00:00
joerg 628289e37e Mark the .ident section as mergable string section to avoid redundant
entries.
2020-04-17 14:19:43 +00:00
jdolecek 1018214947 remove MAXPHYS override, xbd(4) was changed to work with 64k transfers 2020-04-15 10:21:00 +00:00
jdolecek 5a64191052 remove commented out __XEN_INTERFACE_VERSION__ option, it comes via std.xen 2020-04-10 20:56:56 +00:00
jdolecek 3325821ea3 move xen/conf/std.xen to i386/conf/std.xen, it's i386-specific
split off __XEN_INTERFACE_VERSION__ to new xen/conf/std.xenversion
and use from both i386/conf/std.xen and amd64/conf/stf.xen, so that
there is single place for the definition
2020-04-09 14:39:10 +00:00
bouyer ea64d67680 use conf/filesystems.config, fix missing PTYFS 2020-04-06 19:28:21 +00:00
christos d8e96a2d4f Infrastructure for putting kernel+modules in /netbsd/kernel and
/netbsd/modules respectively instead of /netbsd and
/stand/<arch>/<version>/modules.  This is only supported for x86,
and is turned off by default. To try it, add KERNEL_DIR=yes in your
/mk.conf and install a system from that build.
2020-04-04 19:50:53 +00:00
jdolecek 68e97caa11 mark nsmb major obsolete 2020-04-04 16:06:10 +00:00
christos 32fea0b104 Add --noinhibit-exec and --no-dynamic-linker 2020-04-04 15:30:46 +00:00
isaki d58df70401 Reduce default AUDIO_BLK_MS from 40msec to 10msec on all platform except m68k
(m68k uses 40msec default as before).  And remove the option from GENERIC.
- It's not good idea to set such parameter in individual GENERICs.
- 4msec is (probably no problem for most modern real hardware but)
  too aggressive to be default.
- 10msec is too severe for antique machines but it's hard to draw a line.
2020-03-28 08:35:36 +00:00
ad 861f337c4d PR kern/55114: Install fails with "cpu_switchto: switching above IPL_SCHED (8)"
cpu_switch(): Remove stuff dealing with interrupt levels.  From memory it
was something to do with TLB shootdown interrupts but they have long been
outside the SPL framework.
2020-03-27 21:05:03 +00:00
jdolecek 23d0128155 remove 'file-system SMBFS' and 'pseudo-device nsmb' from all kernel configs
to prepare for their eventual removal
2020-03-25 17:06:17 +00:00
riastradh d57fd02b1a Fix clang build after packed lfs64 accessor change. 2020-03-21 18:43:47 +00:00
ad 66b07a07bd Always set PTEs using atomics. There are too many assumptions to go wrong. 2020-03-17 18:17:07 +00:00
nia 96035af93e Lower blk_ms on more ports that are even slightly likely to play video 2020-03-16 19:09:34 +00:00
riastradh df1f0e7940 Revert "Include opt_diagnostic.h for DIAGNOSTIC."
This did not do what I thought it did.  opt_diagnostic.h is only for
the unused _DIAGNOSTIC, which seems like an abortive attempt to
incrementally convert DIAGNOSTIC to an opt_*.h option rather than a
command-line option.
2020-03-05 15:18:54 +00:00
riastradh 57c472be02 Include opt_diagnostic.h for DIAGNOSTIC.
...at least, in header files, which may not have already included
libkern.h.
2020-03-05 08:08:32 +00:00
jmcneill 300584e77e Remove check for bestmode==-1 (shouldn't happen) 2020-02-22 10:30:37 +00:00
jmcneill 2426b4c1e2 If the default GOP mode is unavailable, fallback to the first mode defined.
PR# port-amd64/55000
2020-02-22 09:34:26 +00:00
skrll 94257d06d8 G/C LS{SLEEP,RUN,ONPROC}
LWP status manipulation was moved out of assembly long ago.
2020-02-17 09:09:48 +00:00
nisimura 4a91806e98 add kse(4) for i386/amd64 GENERIC 2020-02-17 06:32:46 +00:00
jmcneill 83d6c67068 Use 1024x768 as the default GOP mode. It is the only option available for
Hyper-V Gen.2 VMs and it seems to be the de facto standard and part of
WHQL requirements.
2020-02-11 11:01:10 +00:00
skrll 5dace764b9 Fix a comment 2020-02-10 22:13:50 +00:00
jmcneill 428130a8e6 Retire azalia(4). 2020-02-09 16:06:17 +00:00
jmcneill 1d88b05fe4 Do not clear the screen before exiting boot services as this may cause an
undesired display mode switch. PR# 54615
2020-02-09 12:13:39 +00:00
jmcneill c89149843e Fix a few bugs related to the framebuffer:
- If a GOP mode wasn't explicitly requested, the bootloader was passing
   fb info to the kernel even if the console was in text mode! This
   results in garbled console output on at least ThinkPad T420 and
   likely many others. If a mode isn't specified, default to 800x600.
 - The "gop" command was incorrectly parsing video modes in the form
   WxHxD as WxWxD.
 - Allow a short form WxH for the "gop" command to select any mode with
   the target dimensions.
2020-02-08 14:35:47 +00:00
maya 1893f08fad Remove more urio(4) traces.
Pointed out by maxv, thanks.
2020-02-03 19:37:42 +00:00
maxv 4c0cb64830 constify 2020-01-31 08:21:11 +00:00
maya 5e031685d6 remove urio(4), a driver for the Rio500 MP3 player.
At this point it is highly unlikely this 1999 device still has users,
but it still comes up in the context of maxv's USB-fuzzing (and any device
could pretend to be a urio(4)), so it's best to get rid of it.

Renamed all major entries to obsolete, as was done in previous removals.

This still requires an update to sanitizers, but they're located in
"external", perhaps it should be first committed upstream?

Proposed on tech-kern a month ago.
2020-01-29 18:39:00 +00:00
thorpej 6dbc6c953b Retire "le* at pci?" from the shipped kernel configs:
- If the config had both an le@pci and a pcn, simply remove le@pci
  (pcn would match at a higher priority anyway).
- If the config had le@pci enabled, but no pcn, change le@pci to pcn.
- If the config had le@pci commented out, but no pcn, change le@pci
  to pcn and leave it commented out.

The pcn driver supports more chips than le@pci and does DMA directly
to/from mbufs rather than memory copies.
2020-01-25 18:38:34 +00:00
martin e7acfd1971 Clamp FAT partition size to 32 bit byte offsets to make the code small
enough to fit.
2020-01-22 06:13:18 +00:00
thorpej 4541d6828b Remove FDDI support. 2020-01-20 18:38:17 +00:00
riastradh 08a157de6e Remove filemon(4).
Discussed on tech-kern:
https://mail-index.NetBSD.org/tech-kern/2020/01/13/msg025938.html

This was never (intentionally) enabled by default, and the design has
some shortcomings.  You can get mostly the same results with ktrace,
as in usr.bin/make/filemon/filemon_ktrace.c which is now used instead
of filemon for make's meta mode.

If applications require higher performance than ktrace, or nesting
that ktrace doesn't support, we might consider adding something back
into the vfs system calls themselves, without hijacking the syscall
table.  (Might want a more reliable output format too, e.g. one that
can handle newlines in file names.)
2020-01-19 20:41:17 +00:00
thorpej ed469c22d6 Remove Token Ring support. 2020-01-19 20:00:35 +00:00
thorpej 85654ec7a9 Remove HIPPI support and the esh(4) driver that uses it. There have not
been any users of HIPPI for some time, and it is unlikely to be resurrected.
2020-01-19 06:55:21 +00:00
thorpej c1d9ec8d89 Remove the strip(4) - Starmode Radio IP - pseudo-device driver. It is
long since obsolete.
2020-01-19 01:25:03 +00:00
nonaka 214d5a7a24 x86 efiboot: Fixed the problem that /EFI/NetBSD/boot.cfg could not be loaded. 2020-01-18 19:25:58 +00:00
nonaka 900e0e61b5 fix indent. 2020-01-18 19:20:23 +00:00
maya 09ad70fb6c Remove uyurex(4).
This is a driver for a "nonsense machine" made by the art group Maywa-Denki
in 2008. It was disabled by default.

Unfortunately even so it draws development attention (flaws found in the
code, MP-ification needs) and it is best not to continue to maintain this
driver.

Proposed without objections on tech-kern.
2020-01-17 15:00:20 +00:00
ad d1baa29b65 Back out the cpu_switchto() workaround now that it's no longer needed. 2020-01-15 18:47:23 +00:00
ad 8854b07344 It looks like Xen cpu_hatch() calls cpu_switchto() with prevlwp=NULL,
instead of calling idle_loop() directly.  I can't test a change to
cpu_hatch() right now so allow for prevlwp=NULL.
2020-01-13 12:03:41 +00:00
ad a733970fe6 Remove now unused mdlwp fields md_gc_pmap and md_gc_ptp. 2020-01-13 00:26:52 +00:00
kamil 576cdd6361 Add missing compat define of PT32_GETXSTATE
Fixes i386 build.

Reviewed by <mgorny>
2020-01-09 10:46:31 +00:00
ad 2ddceed1d9 Hopefully fix some problems seen with MP support on non-x86, in particular
where curcpu() is defined as curlwp->l_cpu:

- mi_switch(): undo the ~2007ish optimisation to unlock curlwp before
  calling cpu_switchto().  It's not safe to let other actors mess with the
  LWP (in particular l->l_cpu) while it's still context switching.  This
  removes l->l_ctxswtch.

- Move the LP_RUNNING flag into l->l_flag and rename to LW_RUNNING since
  it's now covered by the LWP's lock.

- Ditch lwp_exit_switchaway() and just call mi_switch() instead.  Everything
  is in cache anyway so it wasn't buying much by trying to avoid saving old
  state.  This means cpu_switchto() will never be called with prevlwp ==
  NULL.

- Remove some KERNEL_LOCK handling which hasn't been needed for years.
2020-01-08 17:38:41 +00:00
mgorny 77791248de Include XSTATE note in x86 core dumps
Introduce a simple COREDUMP_MACHDEP_LWP_NOTES logic to provide machdep
API for injecting per-LWP notes into coredumps, and use it to append
PT_GETXSTATE note.

Since the XSTATE block uses the same format on i386 and amd64, the code
does not have to conditionalize between 32-bit and 64-bit ELF format
on that.  However, it does need to distinguish between 32-bit and 64-bit
PT_* values.  In order to do that, it reuses PT32_* constant already
present for ptrace(), and adds a matching PT64_GETXSTATE to satisfy
the cpp logic.
2020-01-08 17:21:38 +00:00
ryo 5b7e27ecf0 add aq(4) 2020-01-01 10:36:43 +00:00
thorpej 9473b3b786 Fix a problem with intr_unmask() that can cause a forever-loop:
- When handling the source-is-masked case in the interrupt vector, set the
  interrupt bit in a new ci_imasked field and ensure the bit is cleared
  from ci_ipending.
- In intr_unmask(), transfer the bit from ci_imasked to ci_ipending for
  non-level-sensitive interrupts (the PIC does the work for us in the
  level-sensitive case), and only force pending interrupts to be processed
  in this case.  (In all cases, make sure the now-unmasked bit is cleared
  from ci_imasked.)

Before, the bit was left in ci_ipending so as not to use edge-triggered
interrupts while the source is masked, but Xspllower() relies on the
pending bits getting cleared.

Tested by forcing all wm(4) interrupts on my test system though an
intr_mask() / softint / intr_unmask() cycle and exercising the network
heavily.
2019-12-30 23:32:29 +00:00
ad 9b1e2fa25c Redo the page allocator to perform better, especially on multi-core and
multi-socket systems.  Proposed on tech-kern.  While here:

- add rudimentary NUMA support - needs more work.
- remove now unused "listq" from vm_page.
2019-12-27 12:51:56 +00:00
kamil 4d3a90668a Harmonize the namespace of fast TLS base pointer getter functions
Protect __lwp_getprivate_fast() with _RTLD_SOURCE, _LIBC_SOURCE and
__LIBPTHREAD_SOURCE__.

Include in this namespace <sys/tcl.h> and use __BEGIN_DECLS/__END_DECLS
for the sake of consistency.
2019-12-27 00:32:16 +00:00
maxv 87107185b5 Revert the removal of filemon. 2019-12-23 06:45:36 +00:00
thorpej 601e178380 Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus().  "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
2019-12-22 23:23:29 +00:00
thorpej b1ae49d210 Add intr_mask() and corresponding intr_unmask() calls that allow specific
interrupt lines / sources to be masked as needed (rather than making a
set of sources by IPL as with spl*()).
2019-12-22 15:09:39 +00:00
maxv e67f51b8f7 Retire filemon, discussed on tech-kern@. 2019-12-18 07:37:17 +00:00
manu a2ffa8f62d Do not use NAME=label syntax when label are empty
When booting sysinst from UEFI, it defaults to a GPT installation
where partition have no labels. Bootstrap used the NAME=label partition
anyway, with the result that both EFI and FFS root partition had
the same name "NAME=" and could not be distinguished. The first matching
partition for the name was used, and bootstrap looked for the kernel
in the EFI partition.

We fix that by not using NAME=label names for partition when label
is empty. In that case we revert to old syntax such as hd0b
2019-12-17 01:37:52 +00:00
riastradh 222e6c5758 Add vhci to x86/ALL. 2019-12-15 17:17:16 +00:00
christos 6d8018ef1c PR/54767: elo: fix incorrect test (mlelstv)
Add symbolic constants and reference to the standard.
2019-12-15 03:38:17 +00:00
ad e4a04c43d7 pg->phys_addr -> VM_PAGE_TO_PHYS(pg) 2019-12-10 18:02:14 +00:00
yamaguchi a5e8635231 Ported driver for Intel Ethernet 700 series
reviewed by msaitoh and knakahara
2019-12-10 12:08:52 +00:00
manu 9d087602a9 In-RAID partitions with no name can be candidate for booting
The code to select boot partition in RAID assumed thet had a name,
which is true when there is a GPT inside the RAID, but not when there
is a disklabel inside the RAID. This caused a regression from behavior
of NetBSD 8.1.

We fix this by allowing nameless partition to be boot candidates.
This fixes misc/54748

While there, let raid device be used in the boot specification, like
raid0a:/netbsd.
2019-12-10 02:02:47 +00:00
ad a7dd1bbf7a After lots of testing I'm not convinced of the benefit to the tweak
I made to rw_enter(), so undo it to return to baseline.
2019-12-08 20:00:56 +00:00
christos 6656448714 loadfile sets errno, return the correct error, not EIO. 2019-12-07 02:29:03 +00:00
sevan eb64249784 Enable pciverbose option to make use of the pcidevs database by default.
ok ad, mrg
2019-12-05 22:05:05 +00:00
ad 27c7e48ae9 For this case during build.sh:
rw_enter(lock, RW_READ);

Having instrumented it, it turns out that >99.5% of the time the lock is
completely unknowned.  Make this assumption in the assembly stub for
rw_enter(), and avoid the initial read of the lock word.  Where there are
existing read holds, we'll do an additional CMPXCHG but should already have
the cache line in the EXCLUSIVE state.
2019-11-23 16:36:38 +00:00
ad e79eee7958 x86: abort pageidlezero unconditionally if there is something to run. 2019-11-21 19:27:54 +00:00
ad 8d31b01840 mi_userret(): take care of calling preempt(), set spc_curpriority directly,
and remove MD code that does the same.
2019-11-21 19:23:58 +00:00
maxv e93d43b427 Remove the ins* and outs* functions. Not sanitizer-friendly, and unused
anyway.
2019-11-15 09:03:26 +00:00
chs d47bcd296c in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
2019-11-10 21:16:21 +00:00
msaitoh 2eec381762 Port SMSC LAN87xx 10/100 Ethernet PHY driver from FreeBSD with some cleanup
and IFM_NONE support.
2019-11-01 02:53:22 +00:00
maxv 98a714e52e More inlined ASM. 2019-10-30 17:06:57 +00:00
msaitoh d4bacf091b Add jmphy(4) from OpenBSD. 2019-10-30 12:06:25 +00:00
maxv d50e7f2ac5 Switch to new PTE bits. 2019-10-30 07:40:05 +00:00
martin fdafaadd05 Add support for Nuvoton NCT5104D GPIO chips, as found on PC Engines APU
systems. From Andrew Doran in PR kern/54648.
2019-10-25 17:39:56 +00:00
hannken 7130117523 Add missing include -- kernel ALL/i386 compiles. 2019-10-18 15:00:15 +00:00
msaitoh cc630f1fc3 Fix typos. 2019-10-18 04:13:56 +00:00
manu b2a4053feb Multiboot2 kernel support for i386
That implementation works either with BIOS or UEFI bootstrap

This requires the following kernel changes:

Add UEFI boot services and I/O method protoypes
src/sys/arch/x86/include/efi.h 1.8 - 1.9

Fix EFI system table mapping in virtual space
src/sys/arch/x86/x86/efi.c 1.19 - 1.20

Make sure no bioscall is issued when booting off UEFI system
src/sys/arch/i386/i386/machdep.c 1.821 - 1.822
src/sys/arch/i386/pci/piixpcib.c 1.22 - 1.23

And the following bootstrap changes:

Add kernel symbols for multiboot1
src/sys/arch/i386/stand/lib/exec_multiboot1.c 1.2 - 1.3
src/sys/arch/i386/stand/lib/libi386.h 1.45 - 1.47

Fix kernel symbols for multiboot2
src/sys/arch/i386/stand/lib/exec_multiboot2.c 1.2 - 1.3
2019-10-18 01:38:28 +00:00
manu 1281ec5b00 Remove prototype added twice by mistake 2019-10-18 01:24:51 +00:00
manu 4d1fe8d8ef Fix multiboot1 kernel symbol load
ELF_Shdr's sh_type field is a value, not a flag field
2019-10-18 01:19:00 +00:00
manu 25313e1c19 Fix kernel symbols for multiboot2
Previous version just provided the ELF section table, which is correct
as far as the multiboot 2 specification is concerned.

But in order to retreive kernel symboles, the NetBSD kernelneeds symbol
table and string table sections to be loaded in memory, and have an
address set in the section table.

Requires change: Add kernel symbols for multiboot1
src/sys/arch/i386/stand/lib/exec_multiboot1.c 1.2 - 1.3
src/sys/arch/i386/stand/lib/libi386.h 1.45 - 1.46
2019-10-18 01:15:54 +00:00
manu 2902349762 Add kernel symbols for multiboot1 2019-10-18 01:09:46 +00:00
manu 6868572cf3 Fix multiboot1 header detection
Specification states it	must be must be longword (32-bit) aligned
2019-10-18 01:04:24 +00:00
manu 805b565b8f Make sure no bioscall is issued when booting off UEFI system 2019-10-18 01:00:24 +00:00
maxv 560337f76b Rewrite the FPU code on x86. This greatly simplifies the logic and removes
the dependency on IPL_HIGH. NVMM is updated accordingly. Posted on
port-amd64 a week ago.

Bump the kernel version to 9.99.16.
2019-10-12 06:31:03 +00:00
maxv b16b0b556b No I/O ports for TPM-ISA, only MMIO, so remove commented-out options. 2019-10-08 18:50:44 +00:00
msaitoh d3ce678f8d Add support IC Plus IP1000* PHYs. PR/kern 42314 first reported by
Tomokazu HARADA and patch provided by Andrius V.
2019-10-07 11:53:40 +00:00
maxv 6c0e984be8 Misc reordering, to clarify and reduce the diff against amd64. 2019-10-04 15:28:00 +00:00
maxv d275542dfd Rename fpu_eagerswitch to fpu_switch, and add fpu_xstate_reload to
simplify.
2019-10-04 11:47:07 +00:00
maxv 791ad2e67e Remove the LazyFPU code, as posted 5 months ago on port-amd64@. 2019-10-03 05:06:29 +00:00
gson 8dd7503246 Incrase pxeboot code size limit from 64k to 128k. Fixes PR kern/54560.
The start_pxe.S part was suggested by mlelstv.
2019-09-27 08:57:10 +00:00
nonaka fcd0bf31a0 x86 efiboot: pass a filename to BOOTP and parse a DHCP server provided filename. 2019-09-26 12:21:03 +00:00
manu 7986086211 Fix multiboot32 argument usage 2019-09-24 00:47:46 +00:00
kamil 00ccc35339 Disable __NO_STRICT_ALIGNMENT on amd64/i386 for UBSan builds
This change allows to pick code paths in the kernel that are tuned for
alignment sensitive (and stricted in C meaning) code paths. In particular
the IPv6 code uses this heavily and skips whenever possible the process
of aligning of networking data.

With this modification all ATF tests are executed on amd64 without
triggering any UBSan reports in dmesg.

In theory __NO_STRICT_ALIGNMENT could be tuned for vax and m68k, however
these machines are still unsupported in LLVM sanitizers and syzkaller.

sys/netinet6/scope6.c:404:6, member access within misaligned address 0xfffffaea81276086 for type 'struct in6_addr' which requires 4 byte alignment
Reported-by: syzbot+a86f58d17685317b3df9@syzkaller.appspotmail.com

sys/net/rtsock_shared.c:629:41, member access within misaligned address 0xffffddb5db3ff04c for type 'struct rt_msghdr50' which requires 8 byte alignment
Reported-by: syzbot+0a3a022bc9d2b8880c16@syzkaller.appspotmail.com
2019-09-23 23:06:26 +00:00
christos 7e81d727bc Consistently use ${RELEASEDIR}/${RELEASEMACHINE} instead of
${RELEASEDIR}/${MACHINE} (Paul Ripke)
2019-09-23 13:42:30 +00:00
manu cd863801a8 Remove debug define.
It remained there unseen because it was misspelled!
2019-09-15 23:55:26 +00:00
manu 5e073c0325 Add multiboot 2 support to x86 bootloaders
multiboot 2 is required to boot Xen on an EFI system.
This also require a kernel patch for properly discovering
the ACPI RSDP, which is available after 20190912, in
src/sys/arch/x86/acpi/acpi_machdep.c 1.26-1.28

There are a few missing bit in this multiboot 2 implementation
(which are unused by Xen):
- Header tags Address, Freambuffer, and Relocatable are ignored
- Tags APM and Network are not provided
- Tags ACPI old and ACP new are only provided for ACPI boot
- Tag boot device does not provides the subpart (BSD disklabel partition)

Notes:
- multiboot2 is disabled in dosboot, otherwise the binary
  gets too big and build fails.
- in src/sys/arch/i386/stand/efiboot, consinit() is renamed
  as efi_consinit() to avoid prototype conflicts in src/sys/sys/systm.h
2019-09-13 02:19:45 +00:00
maxv 94473165f7 Convert rdmsr_locked and wrmsr_locked to inlines. 2019-09-07 18:33:16 +00:00
manu 2e9b75405f Make sure devices names are copied including last byte
Fix from M. Levinson.
2019-09-02 06:10:24 +00:00
maxv abd5d6fbcf No USER_LDT on Xen. 2019-08-21 12:16:07 +00:00
riastradh 001c9b0e7c New macro ALIGNED_POINTER_LOAD.
To be used with ALIGNED_POINTER(p,t) instead of writing *(const t *)p
directly.  This way, on machines without strict alignment, we can use
memcpy to pacify sanitizers, while getting the same compiled code in
the end with a single (say) MOV instruction.
2019-08-20 12:33:04 +00:00
ozaki-r 236d5619f0 Add MBUFTRACE to ALL configs 2019-08-19 03:25:40 +00:00
kamil 14adb160be Correct the memset(3)'s third argument in i386 biosdisk.c
The size of allocation is the size of the structure biosdisk, not the size
of a pointer.
2019-08-18 16:49:30 +00:00
manu 92f692b3ca Add GPT and RAIDframe support to bootloaders
Classic BIOS (/boot) and EFI bootloaders can now name devices
using the NAME=gpt_label syntax, or using raid partitions. Here
are examples:
boot NAME=root:/netbsd
boot raid0e:/netbsd
2019-08-18 02:18:24 +00:00