History log of /freebsd-current/sys/conf/options.i386
Revision Date Author Comments
# e045163c 13-Apr-2024 John Baldwin <jhb@FreeBSD.org>

i386: Use DEV_HYPERV to enable HyperV APIC vector

This avoids requiring both 'device hyperv' and 'options HYPERV' for
kernel configs. Instead, just 'device hyperv' can now be used
matching the kernel configuration used for amd64.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D44783


# a113f9dd 20-Oct-2023 Warner Losh <imp@FreeBSD.org>

uart: Support EARLY_PRINTF on x86 for port-mapped COM ports

Support early printf for the ns8250 uart driver. Adding
options UART_NS8250_EARLY_PORT=0xYYY
options EARLY_PRINTF
to your kernel config will enable it. The code is rather simple minded,
so caveat emptor. This will enable printf before cninit. cninit
automatically disables this and switches to the real routine. It only
works for port-mapped COM ports, and only if you know the port's address
at compile time. It's intended for be a debugging aide, not a general
purpose thing.

Sponsored by: Netflix
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D42306


# 031beb4e 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# d1ca8cc6 12-Jul-2022 Colin Percival <cperciva@FreeBSD.org>

x86: Add MPTABLE_LINUX_BUG_COMPAT option

Linux has two bugs in its handling of the x86 MP table:
1. It assumes that there is always 640 kB of base memory, and looks for
the MP table in the top kB of this even if the memory map indicates
that memory location does not exist.
2. It ignores that entry_count field and instead iterates through the
MP table by scanning until it runs out of bytes in the table.

The Firecracker VM (and probably other related VMs) relies on both of
these bugs. With the MPTABLE_LINUX_BUG_COMPAT option, we search for
the MP table at address 639k even if that isn't in the memory map; and
replace a zeroed entry_count with a value computed from scanning the
table until we run out of table bytes.

Reviewed by: imp
Sponsored by: https://www.patreon.com/cperciva
Differential Revision: https://reviews.freebsd.org/D35799


# 2297a163 12-Jul-2022 Colin Percival <cperciva@FreeBSD.org>

Add NO_LEGACY_PCIB kernel option to i386, amd64

On systems without a PCI bus, legacy_pcib_identify by default creates
one anyway:
legacy_pcib_identify: no bridge found, adding pcib0 anyway

This commit adds a kernel option NO_LEGACY_PCIB which disables this,
allowing systems to be fully PCI-free.

Reviewed by: imp
Sponsored by: https://www.patreon.com/cperciva
Differential Revision: https://reviews.freebsd.org/D35798


# 648edd63 09-Aug-2022 Mateusz Guzik <mjg@FreeBSD.org>

x86: remove MP_WATCHDOG

It does not work with ULE, which is the default scheduler for over a
decade.

Reviewed by: emaste, kib
Differential Revision: https://reviews.freebsd.org/D36094


# 6aae3517 20-Oct-2021 Gleb Smirnoff <glebius@FreeBSD.org>

Retire synchronous PPP kernel driver sppp(4).

The last two drivers that required sppp are cp(4) and ce(4).

These devices are still produced and can be purchased
at Cronyx <http://cronyx.ru/hardware/wan.html>.

Since Roman Kurakin <rik@FreeBSD.org> has quit them, they no
longer support FreeBSD officially. Later they have dropped
support for Linux drivers to. As of mid-2020 they don't even
have a developer to maintain their Windows driver. However,
their support verbally told me that they could provide aid to
a FreeBSD developer with documentaion in case if there appears
a new customer for their devices.

These drivers have a feature to not use sppp(4) and create an
interface, but instead expose the device as netgraph(4) node.
Then, you can attach ng_ppp(4) with help of ports/net/mpd5 on
top of the node and get your synchronous PPP. Alternatively
you can attach ng_frame_relay(4) or ng_cisco(4) for HDLC.
Actually, last time I used cp(4) back in 2004, using netgraph(4)
instead of sppp(4) was already the right way to do.

Thus, remove the sppp(4) related part of the drivers and enable
by default the negraph(4) part. Further maintenance of these
drivers in the tree shouldn't be a big deal.

While doing that, remove some cruft and enable cp(4) compilation
on amd64. The ce(4) for some unknown reason marks its internal
DDK functions with __attribute__ fastcall, which most likely is
safe to remove, but without hardware I'm not going to do that, so
ce(4) remains i386-only.

Reviewed by: emaste, imp, donner
Differential Revision: https://reviews.freebsd.org/D32590
See also: https://reviews.freebsd.org/D23928


# 97993d1e 08-Jun-2021 Mark Johnston <markj@FreeBSD.org>

hyperv: Fix vmbus after the i386 4/4 split

The vmbus ISR needs to live in a trampoline. Dynamically allocating a
trampoline at driver initialization time poses some difficulties due to
the fact that the KENTER macro assumes that the offset relative to
tramp_idleptd is fixed at static link time. Another problem is that
native_lapic_ipi_alloc() uses setidt(), which assumes a fixed trampoline
offset.

Rather than fight this, move the Hyper-V ISR to i386/exception.s. Add a
new HYPERV kernel option to make this optional, and configure it by
default on i386. This is sufficient to make use of vmbus(4) after the
4/4 split. Note that vmbus cannot be loaded dynamically and both the
HYPERV option and device must be configured together. I think this is
not too onerous a requirement, since vmbus(4) was previously
non-functional.

Reported by: Harry Schmalzbauer <freebsd@omnilan.de>
Tested by: Harry Schmalzbauer <freebsd@omnilan.de>
Reviewed by: whu, kib
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30577


# aa3ea612 31-Mar-2021 Konstantin Belousov <kib@FreeBSD.org>

x86: remove gcov kernel support

Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D29529


# 1fc92877 25-Feb-2021 Mitchell Horne <mhorne@FreeBSD.org>

Remove stale references to opt_sio.h

The sio(4) driver was removed entirely in 2019, commit 71f0077631fa.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D28929


# b42a2ea5 25-Jan-2021 Mateusz Guzik <mjg@FreeBSD.org>

Remove ndis(4) remnants from kernel configs

Unbreaks LINT kernels.


# 9a527560 29-Jan-2019 Konstantin Belousov <kib@FreeBSD.org>

i386: Merge PAE and non-PAE pmaps into same kernel.

Effectively all i386 kernels now have two pmaps compiled in: one
managing PAE pagetables, and another non-PAE. The implementation is
selected at cold time depending on the CPU features. The vm_paddr_t is
always 64bit now. As result, nx bit can be used on all capable CPUs.

Option PAE only affects the bus_addr_t: it is still 32bit for non-PAE
configs, for drivers compatibility. Kernel layout, esp. max kernel
address, low memory PDEs and max user address (same as trampoline
start) are now same for PAE and for non-PAE regardless of the type of
page tables used.

Non-PAE kernel (when using PAE pagetables) can handle physical memory
up to 24G now, larger memory requires re-tuning the KVA consumers and
instead the code caps the maximum at 24G. Unfortunately, a lot of
drivers do not use busdma(9) properly so by default even 4G barrier is
not easy. There are two tunables added: hw.above4g_allow and
hw.above24g_allow, the first one is kept enabled for now to evaluate
the status on HEAD, second is only for dev use.

i386 now creates three freelists if there is any memory above 4G, to
allow proper bounce pages allocation. Also, VM_KMEM_SIZE_SCALE changed
from 3 to 1.

The PAE_TABLES kernel config option is retired.

In collaboarion with: pho
Discussed with: emaste
Reviewed by: markj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D18894


# 628888f0 19-Dec-2018 Mateusz Guzik <mjg@FreeBSD.org>

Remove iBCS2, part2: general kernel

Reviewed by: kib (previous version)
Sponsored by: The FreeBSD Foundation


# efe3b0de 27-Feb-2017 Gleb Smirnoff <glebius@FreeBSD.org>

Remove SVR4 (System V Release 4) binary compatibility support.

UNIX System V Release 4 is operating system released in 1988. It ceased
to exist in early 2000-s.


# 57f6622f 02-Feb-2017 Konstantin Belousov <kib@FreeBSD.org>

For i386, remove config options CPU_DISABLE_CMPXCHG, CPU_DISABLE_SSE
and device npx.

This means that FPU is always initialized and handled when available,
and SSE+ register file and exception are handled when available. This
makes the kernel FPU code much easier to maintain by the cost of
slight bloat for CPUs older than 25 years.

CPU_DISABLE_CMPXCHG outlived its usefulness, see the removed comment
explaining the original purpose.

Suggested by and discussed with: bde
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 3 weeks


# 0c29fe6d 14-Apr-2016 Sepherosa Ziehau <sephe@FreeBSD.org>

hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus

Submitted by: Jun Su <junsu microsoft com>
Reviewed by: jhb, kib, sephe
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5910


# ed95805e 30-Apr-2015 John Baldwin <jhb@FreeBSD.org>

Remove support for Xen PV domU kernels. Support for HVM domU kernels
remains. Xen is planning to phase out support for PV upstream since it
is harder to maintain and has more overhead. Modern x86 CPUs include
virtualization extensions that support HVM guests instead of PV guests.
In addition, the PV code was i386 only and not as well maintained recently
as the HVM code.
- Remove the i386-only NATIVE option that was used to disable certain
components for PV kernels. These components are now standard as they
are on amd64.
- Remove !XENHVM bits from PV drivers.
- Remove various shims required for XEN (e.g. PT_UPDATES_FLUSH, LOAD_CR3,
etc.)
- Remove duplicate copy of <xen/features.h>.
- Remove unused, i386-only xenstored.h.

Differential Revision: https://reviews.freebsd.org/D2362
Reviewed by: royger
Tested by: royger (i386/amd64 HVM domU and amd64 PVH dom0)
Relnotes: yes


# da2f98a1 29-Apr-2015 Wei Hu <whu@FreeBSD.org>

Microsoft vmbus, storage and other related driver enhancements for HyperV.
- Vmbus multi channel support.
- Vector interrupt support.
- Signal optimization.
- Storvsc driver performance improvement.
- Scatter and gather support for storvsc driver.
- Minor bug fix for KVP driver.
Thanks royger, jhb and delphij from FreeBSD community for the reviews
and comments. Also thanks Hovy Xu from NetApp for the contributions to
the storvsc driver.

PR: 195238
Submitted by: whu
Reviewed by: royger, jhb, delphij
Approved by: royger
MFC after: 2 weeks
Relnotes: yes
Sponsored by: Microsoft OSTC


# 34c15db9 13-Apr-2015 Konstantin Belousov <kib@FreeBSD.org>

Add config option PAE_TABLES for the i386 kernel. It switches pmap to
use PAE format for the page tables, but does not incur other
consequences of the full PAE config. In particular, vm_paddr_t and
bus_addr_t are left 32bit, and max supported memory is still limited
by 4GB.

The option allows to have nx permissions for memory mappings on i386
kernel, while keeping the usual i386 KBI and avoiding the kernel data
sizing problems typical for the PAE config.

Intel documented that the PAE format for page tables is available
starting with the Pentium Pro, but it is possible that the plain
Pentium CPUs have the required support (Appendix H). The goal is to
enable the option and non-exec mappings on i386 for the GENERIC
kernel. Anybody wanting a useful system on 486, have to reconfigure
the modern i386 kernel anyway.

Discussed with: alc, jhb
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks


# 2089f538 01-Jan-2015 Scott Long <scottl@FreeBSD.org>

Garbage collect the asr driver. Hardware for it has not been produced in
roughly 10 years, and the driver has not enjoyed any significant maintenance
since long before that. Despite well-meaning efforts from a number of
people, myself included, it never made the jump to 64-bit and was relegated
to the back-corners of i386. Now its frailty is hampering forward progress
with Clang. Any renewed engineering efforts are of course welcome and can
happen outside of the tree. No MFC of this is planned.


# 81e3caaf 21-May-2014 Justin Hibbits <jhibbits@FreeBSD.org>

imagact_binmisc builds for all supported architectures, so enable it for all.

Any bugs in execution will be dealt with as they crop up.

MFC after: 3 weeks
Relnotes: Yes


# b434acb3 08-Apr-2014 Sean Bruno <sbruno@FreeBSD.org>

Actually, since this is what I thought I was doing, only allow the
binmisc code to be build on amd64/i386 for the kernel.

Update NOTES with some indication of what this code is used for.

Pointed out by jhb@ ... thanks!

Submitted by: jhb@


# 46be218d 21-Aug-2013 David E. O'Brien <obrien@FreeBSD.org>

The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
Thus "device padlock_rng" and "device rdrand_rng" should be
used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".

Requested by: so@ (des)
Submitted by: obrien, arthurmesh@gmail.com
Obtained from: Juniper Networks


# c5e3d0ab 13-Sep-2012 Konstantin Belousov <kib@FreeBSD.org>

Rename the IVY_RNG option to RDRAND_RNG.

Based on submission by: Arthur Mesh <arthurmesh@gmail.com>
MFC after: 2 weeks


# ef9461ba 05-Sep-2012 Konstantin Belousov <kib@FreeBSD.org>

Add support for new Intel on-CPU Bull Mountain random number
generator, found on IvyBridge and supposedly later CPUs, accessible
with RDRAND instruction.

From the Intel whitepapers and articles about Bull Mountain, it seems
that we do not need to perform post-processing of RDRAND results, like
AES-encryption of the data with random IV and keys, which was done for
Padlock. Intel claims that sanitization is performed in hardware.

Make both Padlock and Bull Mountain random generators support code
covered by kernel config options, for the benefit of people who prefer
minimal kernels. Also add the tunables to disable hardware generator
even if detected.

Reviewed by: markm, secteam (simon)
Tested by: bapt, Michael Moll <kvedulv@kvedulv.de>
MFC after: 3 weeks


# 5d4c773b 24-Mar-2012 Alan Cox <alc@FreeBSD.org>

Disable detailed PV entry accounting by default. Add a config option
to enable it.

MFC after: 1 week


# f11c7f63 31-Jan-2012 Jim Harris <jimharris@FreeBSD.org>

Add isci(4) driver for amd64 and i386 targets.

The isci driver is for the integrated SAS controller in the Intel C600
(Patsburg) chipset. Source files in sys/dev/isci directory are
FreeBSD-specific, and sys/dev/isci/scil subdirectory contains
an OS-agnostic library (SCIL) published by Intel to control the SAS
controller. This library is used primarily as-is in this driver, with
some post-processing to better integrate into the kernel build
environment.

isci.4 and a README in the sys/dev/isci directory contain a few
additional details.

This driver is only built for amd64 and i386 targets.

Sponsored by: Intel
Reviewed by: scottl
Approved by: scottl


# 2913e88c 04-Jan-2011 Robert Watson <rwatson@FreeBSD.org>

Make "options XENHVM" compile for i386, not just amd64 -- a largely
mechanical change. This opens the door for using PV device drivers
under Xen HVM on i386, as well as more general harmonisation of i386
and amd64 Xen support in FreeBSD.

Reviewed by: cperciva
MFC after: 3 weeks


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 7dd1fd87 29-Mar-2010 Attilio Rao <attilio@FreeBSD.org>

MFC r199852, r202387, r202441, r202534:
Handling all the three clocks with the LAPIC may lead to aliasing for
softclock and profclock.
Revert the change when the LAPIC started taking charge of all three of
them.

Sponsored by: Sandvine Incorporated


# 7bf38446 26-Mar-2010 John Baldwin <jhb@FreeBSD.org>

MFC 204972:
Make NKPT a kernel option on i386 so that it can be set to a non-default
value from kernel config files.


# cf684ede 10-Mar-2010 John Baldwin <jhb@FreeBSD.org>

Make NKPT a kernel option on i386 so that it can be set to a non-default
value from kernel config files.

Tested by: Charles Sprickman spork of bway net
MFC after: 2 weeks


# a26cb6d5 15-Jan-2010 Attilio Rao <attilio@FreeBSD.org>

Handling all the three clocks (hardclock, softclock, profclock) with the
LAPIC may lead to aliasing for softclock and profclock because frequencies
are sized in order to fit mainly hardclock.
atrtc used to take care of the softclock and profclock and it does still
do, if the LAPIC can't handle the clocks properly.

Revert the change when the LAPIC started taking charge of all three of
them and let atrtc handle softclock and profclock if not explicitly
requested. Such request can be made setting != 0 the new tunable
machdep.lapic_allclocks or if the new device ATPIC is not present
within the i386 kernel config (atrtc is linked to atpic presence).

Diagnosed by: Sandvine Incorporated
Reviewed by: jhb, emaste
Sponsored by: Sandvine Incorporated
MFC: 3 weeks


# be105717 13-Aug-2009 Attilio Rao <attilio@FreeBSD.org>

MFC r196196:

* Completely remove the option STOP_NMI from the kernel. This option
has proven to have a good effect when entering KDB by using a NMI,
but it completely violates all the good rules about interrupts
disabled while holding a spinlock in other occasions. This can be the
cause of deadlocks on events where a normal IPI_STOP is expected.
* Add an new IPI called IPI_STOP_HARD on all the supported architectures.
This IPI is responsible for sending a stop message among CPUs using a
privileged channel when disponible. In other cases it just does match a
normal IPI_STOP.
Right now the IPI_STOP_HARD functionality uses a NMI on ia32 and amd64
architectures, while on the other has a normal IPI_STOP effect. It is
responsibility of maintainers to eventually implement an hard stop
when necessary and possible.
* Use the new IPI facility in order to implement a new userend SMP kernel
function called stop_cpus_hard(). That is specular to stop_cpu() but
it does use the privileged channel for the stopping facility.
* Let KDB use the newly introduced function stop_cpus_hard() and leave
stop_cpus() for all the other cases
* Disable interrupts on CPU0 when starting the process of APs suspension.
* Style cleanup and comments adding

This patch should fix the reboot/shutdown deadlocks many users are
constantly reporting on mailing lists.

Please don't forget to update your config file with the STOP_NMI
option removal

Reviewed by: jhb
Tested by: pho, bz, rink
Approved by: re (kib)


# dc6fbf65 13-Aug-2009 Attilio Rao <attilio@FreeBSD.org>

* Completely Remove the option STOP_NMI from the kernel. This option
has proven to have a good effect when entering KDB by using a NMI,
but it completely violates all the good rules about interrupts
disabled while holding a spinlock in other occasions. This can be the
cause of deadlocks on events where a normal IPI_STOP is expected.
* Adds an new IPI called IPI_STOP_HARD on all the supported architectures.
This IPI is responsible for sending a stop message among CPUs using a
privileged channel when disponible. In other cases it just does match a
normal IPI_STOP.
Right now the IPI_STOP_HARD functionality uses a NMI on ia32 and amd64
architectures, while on the other has a normal IPI_STOP effect. It is
responsibility of maintainers to eventually implement an hard stop
when necessary and possible.
* Use the new IPI facility in order to implement a new userend SMP kernel
function called stop_cpus_hard(). That is specular to stop_cpu() but
it does use the privileged channel for the stopping facility.
* Let KDB use the newly introduced function stop_cpus_hard() and leave
stop_cpus() for all the other cases
* Disable interrupts on CPU0 when starting the process of APs suspension.
* Style cleanup and comments adding

This patch should fix the reboot/shutdown deadlocks many users are
constantly reporting on mailing lists.

Please don't forget to update your config file with the STOP_NMI
option removal

Reviewed by: jhb
Tested by: pho, bz, rink
Approved by: re (kib)


# c353491a 06-Feb-2009 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Fix AGP debugging code:
- correct format strings
- fill opt_agp.h if AGP_DEBUG is defined
- bring AGP_DEBUG to LINT by mentioning it in NOTES

This should hopefully fix a warning that was...

Found by: Coverity Prevent(tm)
CID: 3676
Tested on: amd64, i386


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 10dc76a3 15-Aug-2008 Kip Macy <kmacy@FreeBSD.org>

Integrate configuration bits for compling xen.

MFC after: 1 month


# 53a609f0 13-Jun-2008 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Remove obselete PECOFF image activator support.

PRs assigned at the time of removal: kern/80742

Discussed on: freebsd-current (silence), IRC
Tested by: make universe
Approved by: cognet (mentor)


# 2e598474 26-May-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and
parts relied on the now removed NET_NEEDS_GIANT.
Most of I4B has been disconnected from the build
since July 2007 in HEAD/RELENG_7.

This is what was removed:
- configuration in /etc/isdn
- examples
- man pages
- kernel configuration
- sys/i4b (drivers, layers, include files)
- user space tools
- i4b support from ppp
- further documentation

Discussed with: rwatson, re


# dad3b6c6 26-Mar-2008 Poul-Henning Kamp <phk@FreeBSD.org>

Back in the good old days, PC's had random pieces of rock for
frequency generation and what frequency the generated was anyones
guess.

In general the 32.768kHz RTC clock x-tal was the best, because that
was a regular wrist-watch Xtal, whereas the X-tal generating the
ISA bus frequency was much lower quality, often costing as much as
several cents a piece, so it made good sense to check the ISA bus
frequency against the RTC clock.

The other relevant property of those machines, is that they
typically had no more than 16MB RAM.

These days, CPU chips croak if their clocks are not tightly within
specs and all necessary frequencies are derived from the master
crystal by means if PLL's.

Considering that it takes on average 1.5 second to calibrate the
frequency of the i8254 counter, that more likely than not, we will
not actually use the result of the calibration, and as the final
clincher, we seldom use the i8254 for anything besides BEL in
syscons anyway, it has become time to drop the calibration code.

If you need to tell the system what frequency your i8254 runs,
you can do so from the loader using hw.i8254.freq or using the
sysctl kern.timecounter.tc.i8254.frequency.


# 3e3d9737 30-Nov-2007 Peter Wemm <peter@FreeBSD.org>

Allow the sio acpi attachment to be disabled (ie: use hints only). This
hack means you can get the units and flags to match up more easily with
serial consoles on machines with acpi tables that cause the com ports
to be probed in the wrong order (and hence get the wrong sio unit number).

This replaces the common alternative hack of editing the code to comment
out the acpi attachment. This could go away entirely when device wiring
patches are committed.


# 118043c6 03-Jul-2007 Bjoern A. Zeeb <bz@FreeBSD.org>

Temporary disconnect i4bing, i4bisppp and i4bipr from the build for
the 7.0 timeframe.

This is needed because I4B is not locked and NET_NEEDS_GIANT goes away.

The plan is to lock I4B and bring everything back for 7.1.

Approved by: re (kensmith)


# 302981e7 29-Jul-2006 Marcel Moolenaar <marcel@FreeBSD.org>

Remove sio(4) and related options from MI files to amd64, i386
and pc98 MD files. Remove nodevice and nooption lines specific
to sio(4) from ia64, powerpc and sparc64 NOTES. There were no
such lines for arm yet.
sio(4) is usable on less than half the platforms, not counting
a future mips platform. Its presence in MI files is therefore
increasingly becoming a burden.


# f6ce2a64 17-May-2006 Poul-Henning Kamp <phk@FreeBSD.org>

Send the pcvt(4) driver off to retirement.


# 054c2555 09-May-2006 Doug Ambrisko <ambrisko@FreeBSD.org>

Fix LINSYSFS in the platform options files that I missed from the platform
split out change.


# f4eb4717 07-May-2006 Alexander Leidinger <netchild@FreeBSD.org>

- change the example of compiling only specific modules to not contain
the linux module, since it is not cross-platform
- move linprocfs from "files" and "options" to architecture specific files,
since it only makes sense to build this for those architectures, where we
also have a linuxolator
- disable the build of the linuxolator on our tier-2 architecture "Alpha":
* we don't have a linux_base port which supports Alpha and at the
same time is not outdated/obsoleted upstream/in a good condition/
currently working
* the upcomming new default linux base port is based upon Fedora
Core 3 (security support via http://www.fedoralegacy.org), which
isn't available for Alpha (like the current default linux base
port which is based upon Red Hat 8)
* nobody answered my request for testing it ~1 month ago on
current@ and alpha@ (it doesn't surprises me, see above)
* a SoC student wouldn't have to waste time on something which
nobody is willing to test

This does not remove the alpha specific MD files of the linuxolator yet.

Discussed on: arch (mostly silence)
Spiritual support by: scottl


# cea4d875 24-Apr-2006 Marcel Moolenaar <marcel@FreeBSD.org>

o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front-
end for isa(4).
o Add a seperate bus frontend for acpi(4) and allow ISA DMA for
it when ISA is configured in the kernel. This allows acpi(4)
attachments in non-ISA configurations, as is possible for ia64.
o Add a seperate bus frontend for pci(4) and detect known single
port parallel cards.
o Merge PC98 specific changes under pc98/cbus into the MI driver.
The changes are minor enough for conditional compilation and
in this form invites better abstraction.
o Have ppc(4) usabled on all platforms, now that ISA specifics
are untangled enough.


# 8dfbd03d 03-Mar-2006 Warner Losh <imp@FreeBSD.org>

Move XBOX option to options. While it is only valid on i386,
syscons_isa is shared with other machines.


# e9484e32 12-Dec-2005 Ruslan Ermilov <ru@FreeBSD.org>

Remove all redundant option file names that don't hurt readability.


# ae275efc 05-Dec-2005 Jung-uk Kim <jkim@FreeBSD.org>

Add experimental BPF Just-In-Time compiler for amd64 and i386.

Use the following kernel configuration option to enable:

options BPF_JITTER

If you want to use bpf_filter() instead (e. g., debugging), do:

sysctl net.bpf.jitter.enable=0

to turn it off.

Currently BIOCSETWF and bpf_mtap2() are unsupported, and bpf_mtap() is
partially supported because 1) no need, 2) avoid expensive m_copydata(9).

Obtained from: WinPcap 3.1 (for i386)


# 0c43612a 23-Nov-2005 John Baldwin <jhb@FreeBSD.org>

Sort.


# c21ba8d1 22-Nov-2005 John Baldwin <jhb@FreeBSD.org>

Make COUNT_IPIS and COUNT_XINVLTLB_HITS real kernel options and take
them out of machine/smptests.h.


# 51ef421d 08-Nov-2005 Warner Losh <imp@FreeBSD.org>

Add support for XBOX to the FreeBSD port. The xbox architecture is
nearly identical to wintel/ia32, with a couple of tweaks. Since it is
so similar to ia32, it is optionally added to a i386 kernel. This
port is preliminary, but seems to work well. Further improvements
will improve the interaction with syscons(4), port Linux nforce driver
and future versions of the xbox.

This supports the 64MB and 128MB boxes. You'll need the most recent
CVS version of Cromwell (the Linux BIOS for the XBOX) to boot.

Rink will be maintaining this port, and is interested in feedback.
He's setup a website http://xbox-bsd.nl to report the latest
developments.

Any silly mistakes are my fault.

Submitted by: Rink P.W. Springer rink at stack dot nl and
Ed Schouten ed at fxq dot nl


# 58553b99 24-Oct-2005 John Baldwin <jhb@FreeBSD.org>

Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all
IPI_STOP IPIs.
- Change the i386 and amd64 MD IPI code to send an NMI if STOP_NMI is
enabled if an attempt is made to send an IPI_STOP IPI. If the kernel
option is enabled, there is also a sysctl to change the behavior at
runtime (debug.stop_cpus_with_nmi which defaults to enabled). This
includes removing stop_cpus_nmi() and making ipi_nmi_selected() a
private function for i386 and amd64.
- Fix ipi_all(), ipi_all_but_self(), and ipi_self() on i386 and amd64 to
properly handle bitmapped IPIs as well as IPI_STOP IPIs when STOP_NMI is
enabled.
- Fix ipi_nmi_handler() to execute the restart function on the first CPU
that is restarted making use of atomic_readandclear() rather than
assuming that the BSP is always included in the set of restarted CPUs.
Also, the NMI handler didn't clear the function pointer meaning that
subsequent stop and restarts could execute the function again.
- Define a new macro HAVE_STOPPEDPCBS on i386 and amd64 to control the use
of stoppedpcbs[] and always enable it for i386 and amd64 instead of
being dependent on KDB_STOP_NMI. It works fine in both the NMI and
non-NMI cases.


# 60baed37 02-Jul-2005 Xin LI <delphij@FreeBSD.org>

Remove the CPU_ENABLE_SSE option from the i386 and pc98 architectures,
as they are already default for I686_CPU for almost 3 years, and
CPU_DISABLE_SSE always disables it. On the other hand, CPU_ENABLE_SSE
does not work for I486_CPU and I586_CPU.

This commit has:
- Removed the option from conf/options.*
- Removed the option and comments from MD NOTES files
- Simplified the CPU_ENABLE_SSE ifdef's so they don't
deal with CPU_ENABLE_SSE from kernel configuration. (*)

For most users, this commit should be largely no-op. If you used to
place CPU_ENABLE_SSE into your kernel configuration for some reason,
it is time to remove it.

(*) The ifdef's of CPU_ENABLE_SSE are not removed at this point, since
we need to change it to !defined(CPU_DISABLE_SSE) && defined(I686_CPU),
not just !defined(CPU_DISABLE_SSE), if we really want to do so.

Discussed on: -arch
Approved by: re (scottl)


# f0c6706d 29-Jun-2005 Peter Wemm <peter@FreeBSD.org>

Move the KDB_STOP_NMI option from opt_global.h to opt_kdb.h

Approved by: re


# fe98fb32 21-Jun-2005 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

Connect reiserfs build to every platforms, not only i386 and pc98.

Reviewed by: mux (mentor)
Approved by: re (dougb)


# fc7a25fd 23-May-2005 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

Connect the ReiserFS filesystem to the build (i386 only).

Approved by: mux (mentor)


# 164e09dd 11-May-2005 Yoshihiro Takahashi <nyan@FreeBSD.org>

- Move the NPX_DEBUG option to options.{i386,pc98} and use opt_npx.h.
- Move npx related defines to {i386,pc98}/include/npx.h to remove #include
{isa,cbus}.h.


# fdc9713b 30-Apr-2005 Doug White <dwhite@FreeBSD.org>

Implement an alternate method to stop CPUs when entering DDB. Normally we use
a regular IPI vector, but this vector is blocked when interrupts are disabled.
With "options KDB_STOP_NMI" and debug.kdb.stop_cpus_with_nmi set, KDB will
send an NMI to each CPU instead. The code also has a context-stuffing
feature which helps ddb extract the state of processes running on the
stopped CPUs.

KDB_STOP_NMI is only useful with SMP and complains if SMP is not defined.
This feature only applies to i386 and amd64 at the moment, but could be
used on other architectures with the appropriate MD bits.

Submitted by: ups


# 2326e092 14-Apr-2005 John Baldwin <jhb@FreeBSD.org>

Remove support for mixed mode altogether now that we no longer use IRQ 0
when using an APIC. This simplifies the APIC code somewhat and also allows
us to be pedantically more compliant with ACPI which mandates no use of
mixed mode.


# 641a67be 16-Mar-2005 Olivier Houchard <cognet@FreeBSD.org>

Bring back some of the ioctl junk that was removed in rev 1.59 as a
i386-only kernel option, ASR_COMPAT, and under BURN_BRIDGES.
It is really ugly, but raidutils depends on it.

Discussed with: scottl


# badee853 23-Feb-2005 Nate Lawson <njl@FreeBSD.org>

Remove CPU_ENABLE_TCC and hook the cpufreq p4tcc up to the build.


# 2d68e3fb 16-Nov-2004 John Baldwin <jhb@FreeBSD.org>

Initiate deorbit burn sequence for 80386 support in FreeBSD: Remove
80386 (I386_CPU) support from the kernel.


# f49f2ca6 19-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

Unconditionally support the AMD64 GART HW.


# 3c749e3f 15-Aug-2004 David E. O'Brien <obrien@FreeBSD.org>

AMD64 on-CPU GART support.
This also applies to AMD64 HW running 'i386' OS.

Submitted by: Jung-uk Kim <jkim@niksun.com>
Integration by: obrien


# a632deec 15-Aug-2004 Robert Watson <rwatson@FreeBSD.org>

Add an "options MP_WATCHDOG" to i386. This option allows one of the
logical CPUs on a system to be used as a dedicated watchdog to cause a
drop to the debugger and/or generate an NMI to the boot processor if
the kernel ceases to respond. A sysctl enables the watchdog running
out of the processor's idle thread; a callout is launched to reset a
timer in the watchdog. If the callout fails to reset the timer for ten
seconds, the watchdog will fire. The sysctl allows you to select which
CPU will run the watchdog.

A sample "debug.leak_schedlock" is included, which causes a sysctl to
spin holding sched_lock in order to trigger the watchdog. On my Xeons,
the watchdog is able to detect this failure mode and break into the
debugger, which cannot otherwise be done without an NMI button.

This option does not currently work with sched_ule due to ule's push
notion of scheduling, similar to machdep.hlt_logical_cpus failing to
work with that scheduler.

On face value, this might seem somewhat inefficient, but there are a
lot of dual-processor Xeons with HTT around, so using one as a watchdog
for testing is not as inefficient as one might fear.


# 69ef3621 14-Mar-2004 Warner Losh <imp@FreeBSD.org>

Remove isa compat stuff.

Only cy, bs and wd in the tree still use it. I have a replacement for
cy that I need to test on ISA and PCI cards. bs and wd are pc98 only
drivers that appear to no longer be necessary. I'll be removing them
when I hear back from the pc98 people.


# bad83add 25-Jan-2004 Bruce Evans <bde@FreeBSD.org>

Fixed some style bugs (insertion sort errors, tab lossage, and ornation
of EOF).


# 1fbb6abc 25-Jan-2004 Maxim Sobolev <sobomax@FreeBSD.org>

Move LongRun support out of identcpu.c, where it hardly belongs, into its
own file and make it opt-in, not mandatory, depending on CPU_ENABLE_LONGRUN
config(8) option.

PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from:
Discussed with: nate
MFC after: 2 weeks


# e609fbdb 23-Jan-2004 Philip Paeps <philip@FreeBSD.org>

Add missing options from pcvt_conf.h to options.i386. This
allows the kernel build to survive config when these options
are specified in the config file.

Reviewed by: hm
Approved by: njl (mentor)


# e7846ad7 18-Jan-2004 Maxim Sobolev <sobomax@FreeBSD.org>

Add new CPU_ENABLE_TCC option, from NOTES:

CPU_ENABLE_TCC enables Thermal Control Circuitry (TCC) found in some
Pentium(tm) 4 and (possibly) later CPUs. When enabled and detected,
TCC allows to restrict power consumption by using machdep.cpuperf*
sysctls. This operates independently of SpeedStep and is useful on
systems where other mechanisms such as apm(4) or acpi(4) don't work.

Given the fact that many, even modern, notebooks don't work properly
with Intel ACPI, this is indeed very useful option for notebook owners.

Obtained from: OpenBSD
MFC after: 2 weeks


# 8d1da39d 08-Jan-2004 Bill Paul <wpaul@FreeBSD.org>

Add the NDISAPI option.


# 42033f49 30-Dec-2003 Bruce Evans <bde@FreeBSD.org>

Garbage-collected CLK_USE_TSC_CALIBRATION.

i386/conf/NOTES, pc98/conf/NOTES:
Fixed the descriptions of the other CLK_* options.


# d9feb22d 10-Dec-2003 John Baldwin <jhb@FreeBSD.org>

The DEV_ACPI option is no longer used, so g/c it.


# ac44076d 03-Dec-2003 Warner Losh <imp@FreeBSD.org>

Connect the cx driver to its new location in the tree.
Update notes to reflect that cx is no longer a counted device
Update options for new cx option
# commented out ELAN_PPS and ELAN_XTAL since they produced errors

Submitted by: rik@cronyx.ru
Approved by: re@ <scottl>


# 90bc0f9d 01-Dec-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Rename the ELAN_* options to CPU_ELAN_* according the the brucification.

This commit was forgotten a few days ago.

Approved by: re@


# f9dbba5c 11-Nov-2003 John Baldwin <jhb@FreeBSD.org>

Disable probing of HTT CPUs by default for the MP Table case. HTT CPUs
should only be used if they are enabled in the BIOS. Now that we support
enumerating CPUs using the ACPI MADT, any HTT machine using ACPI should
respect the BIOS setting. For HTT machines with ACPI disabled in the
kernel, the MPTABLE_FORCE_HTT kernel option can be used to try to probe HTT
CPUs like have done in the past for the MP Table case. This option should
only be enabled if HTT is enabled in the BIOS.


# dd7b5bb3 07-Nov-2003 Bruce Evans <bde@FreeBSD.org>

Fixed insertion sort errors in the opt_cpu.h section.

Removed banal comments about ELAN*. Complain about ELAN* being misnamed
instead (so that these options are not obviously related to a CPU and
don't sort with CPU_ELAN).

Complain about CPU_DISABLE_CMPXCHG being in the wrong namespace.


# a13b8138 03-Nov-2003 John Baldwin <jhb@FreeBSD.org>

- Remove APIC_IO option.
- Add NO_MIXED_MODE, DEV_ACPI, and DEV_APIC options.


# 1c66457e 03-Nov-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Introduce new CPU_SOEKRIS option to tell soekris hardware from other
hardware based on similar chipsets.


# 555639e0 30-Oct-2003 John Baldwin <jhb@FreeBSD.org>

Fixup the sorting of some of the options. DISABLE_P* are still out of
order to keep all of the opt_pmap.h options together.


# f633e006 31-Aug-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Detect Geode CPUs and initialize the 27MHz timecounter "Geode".

This timecounter is 2usec faster than the i8254 and has 22 times
better resolution.


# 77bf7b3b 22-Jul-2003 Bernd Walter <ticso@FreeBSD.org>

EISA_SLOTS is mandantory to get opt_eisa.h
Put it into MI files.


# a35b3386 22-Jul-2003 Peter Wemm <peter@FreeBSD.org>

Initiate de-orbit burn for fpu-less operation. 386+387 is still
theoretically supportable, but you'd really be happier with FreeBSD 2.1.8
on it.


# e95babf3 09-Jul-2003 Peter Wemm <peter@FreeBSD.org>

unifdef -DLAZY_SWITCH and start to tidy up the associated glue.


# eabd1972 27-Jun-2003 Peter Wemm <peter@FreeBSD.org>

Tidy up leftover lazy_switch instrumentation that is no longer needed.
This cleans up some #ifdef hell.


# 28ab032e 18-Jun-2003 Jake Burkholder <jake@FreeBSD.org>

Moved the syscons options, kbd options and DEV_SPLASH to the MI options
file.


# ed9adee7 12-Apr-2003 Dag-Erling Smørgrav <des@FreeBSD.org>

Options that go into homonymous headers shouldn't specify the header name.

Submitted by: Hiten Pandya <hiten@unixdaemons.com>


# 0da46d77 10-Apr-2003 Dag-Erling Smørgrav <des@FreeBSD.org>

Convert the SMP_TSC kernel option into a loader tunable. Also enable
the TSC timecounter on single-CPU systems even when they are running
an SMP kernel.


# fd6d48b8 04-Apr-2003 Tor Egge <tegge@FreeBSD.org>

Add SMP_TSC option, which can be used on SMP systems where the TSCs
are synchronized to reduce context switch cost.


# cc66ebe2 02-Apr-2003 Peter Wemm <peter@FreeBSD.org>

Commit a partial lazy thread switch mechanism for i386. it isn't as lazy
as it could be and can do with some more cleanup. Currently its under
options LAZY_SWITCH. What this does is avoid %cr3 reloads for short
context switches that do not involve another user process. ie: we can
take an interrupt, switch to a kthread and return to the user without
explicitly flushing the tlb. However, this isn't as exciting as it could
be, the interrupt overhead is still high and too much blocks on Giant
still. There are some debug sysctls, for stats and for an on/off switch.

The main problem with doing this has been "what if the process that you're
running on exits while we're borrowing its address space?" - in this case
we use an IPI to give it a kick when we're about to reclaim the pmap.

Its not compiled in unless you add the LAZY_SWITCH option. I want to fix a
few more things and get some more feedback before turning it on by default.

This is NOT a replacement for Bosko's lazy interrupt stuff. This was more
meant for the kthread case, while his was for interrupts. Mine helps a
little for interrupts, but his helps a lot more.

The stats are enabled with options SWTCH_OPTIM_STATS - this has been a
pseudo-option for years, I just added a bunch of stuff to it.

One non-trivial change was to select a new thread before calling
cpu_switch() in the first place. This allows us to catch the silly
case of doing a cpu_switch() to the current process. This happens
uncomfortably often. This simplifies a bit of the asm code in cpu_switch
(no longer have to call choosethread() in the middle). This has been
implemented on i386 and (thanks to jake) sparc64. The others will come
soon. This is actually seperate to the lazy switch stuff.

Glanced at by: jake, jhb


# 7ab9b220 29-Mar-2003 Jake Burkholder <jake@FreeBSD.org>

- Add support for PAE and more than 4 gigs of ram on x86, dependent on the
kernel opition 'options PAE'. This will only work with device drivers which
either use busdma, or are able to handle 64 bit physical addresses.

Thanks to Lanny Baron from FreeBSD Systems for the loan of a test machine
with 6 gigs of ram.

Sponsored by: DARPA, Network Associates Laboratories, FreeBSD Systems


# 87437b0b 26-Mar-2003 Paul Saab <ps@FreeBSD.org>

Nuke options HTT infavor of machdep.hlt_logical_cpus tunable/sysctl.
This keeps the logical cpu's halted in the idle loop. By default
the logical cpu's are halted at startup. It is also possible to
halt any cpu in the idle loop now using machdep.hlt_cpus.

Examples of how to use this:
machdep.hlt_cpus=1 halt cpu0
machdep.hlt_cpus=2 halt cpu1
machdep.hlt_cpus=4 halt cpu2
machdep.hlt_cpus=3 halt cpu0,cpu1

Reviewed by: jhb, peter


# d7a715dc 04-Mar-2003 John Baldwin <jhb@FreeBSD.org>

Wrap the hyperthreading support code with the HTT kernel option.
Hyperthreading support is now off unless the HTT option is added.

MFC-after: 3 days


# c441cdb8 15-Jan-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Add machdep.elan_freq sysctl which can be used to set the CPU clock
frequency in Hz. The default is still 33.333 MHz. Please notice
that the number is round to a multiple of four internally so it may
not read back exactly the same as written.

Add compile time ELAN_XTAL option to override the 33.333 MHz default.

Add compile time ELAN_PPS option to enable code for high precision
(250 nanoseconds) timestamping of external signals.


# 5f07565b 17-Nov-2002 Juli Mallett <jmallett@FreeBSD.org>

Move SHOW_BUSYBUFS and PANIC_REBOOT_WAIT_TIME into the MI options file, since
MI code uses them, and every platform provides them (except x86_64 whose
options file was lacking one).

Reviewed by: bde, rwatson


# c42946c4 17-Oct-2002 Mitsuru IWASAKI <iwasaki@FreeBSD.org>

Add new syscons option SC_NO_SUSPEND_VTYSWITCH.
This disables vty switch during suspend/resume.


# 77e83412 14-Oct-2002 Jim Pirzyk <pirzyk@FreeBSD.org>

Add a knob to turn on and off the CMPXCHG instruction on > i386 IA32 systems.
This is most beneficial for vmware client os installs.

Reviewed by: jmallet, iedowse, tlambert2@mindspring.com
MFC After: never, -STABLE does not currently use this instruction


# e94ecf73 07-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Move the KSTACK_PAGES option from MD to MI. Although not all platforms
support this, we do have MI code that references it and is otherwise
unaware of an override. The alternative is to put knowledge in these
MI files about which platforms have the opt_kstack_pages.h option file.
It is more likely that other platforms will gain the ability to tune the
kstack size.


# f7749f92 07-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Automatically enable CPU_ENABLE_SSE (detect and enable SSE instructions)
if compiling with I686_CPU as a target. CPU_DISABLE_SSE will prevent
this from happening and will guarantee the code is not compiled in.

I am still not happy with this, but gcc is now generating code that uses
these instructions if you set CPUTYPE to p3/p4 or athlon-4/mp/xp or higher.


# 581968ab 06-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Add COMPAT_AOUT option so that config will not yell when you try and
compile it statically.


# bd8add3d 04-Sep-2002 Poul-Henning Kamp <phk@FreeBSD.org>

Change the support for AMDs ElanSC520 CPU from being a device driver to
be
options CPU_ELAN
(NB: Soekris.com users!)

It is cleaner this way. We still recognize the cpu on the host-pci bridge.


# fbfee3f6 15-Jul-2002 John Baldwin <jhb@FreeBSD.org>

Move SMBFS from i386 and pc98 files and options files to MI files and
options files.


# 47a3594e 15-Jul-2002 John Baldwin <jhb@FreeBSD.org>

The puc(4) driver/bridge is MI, so don't bury it in MD options and files
config files. It also depends on PCI.


# 97fef0a1 15-Jul-2002 John Baldwin <jhb@FreeBSD.org>

Make WLCACHE and WLDEBUG MI options.


# 7f01180e 15-Jul-2002 John Baldwin <jhb@FreeBSD.org>

Make NDGBPORTS an MI option since the dgb(4) driver is an MI driver.
Remove comments about NDGBPORTS from the options* files. Please document
options in NOTES, not in the options* files.


# f1b665c8 12-Jul-2002 Peter Wemm <peter@FreeBSD.org>

Revive backed out pmap related changes from Feb 2002. The highlights are:
- It actually works this time, honest!
- Fine grained TLB shootdowns for SMP on i386. IPI's are very expensive,
so try and optimize things where possible.
- Introduce ranged shootdowns that can be done as a single IPI.
- PG_G support for i386
- Specific-cpu targeted shootdowns. For example, there is no sense in
globally purging the TLB cache for where we are stealing a page from
the local unshared process on the local cpu. Use pm_active to track
this.
- Add some instrumentation for the tlb shootdown code.
- Rip out SMP code from <machine/cpufunc.h>
- Try and fix some very bogus PG_G and PG_PS interactions that were bad
enough to cause vm86 bios calls to break. vm86 depended on our existing
bugs and this was the cause of the VESA panics last time.
- Fix the silly one-line error that caused the 'panic: bad pte' last time.
- Fix a couple of other silly one-line errors that should have caused more
pain than they did.

Some more work is needed:
- pmap_{zero,copy}_page[_idle]. These can be done without IPI's if we
have a hook in cpu_switch.
- The IPI handlers need some cleanup. I have a bogus %ds load that can
be avoided.
- APTD handling is rather bogus and appears to be a large source of
global TLB IPI shootdowns for no really good reason.

I see speedups of between 1.5% and ~4% on buildworlds in a while 1 loop.
I expect to see a bigger difference when there is significant pageout
activity or the system otherwise has memory shortages.

I have backed out a few optimizations that I had been using over the last
few days in order to be a little more conservative. I'll revisit these
again over the next few days as the dust settles.

New option: DISABLE_PG_G - In case I missed something.


# d8dbc77c 18-Jun-2002 Nick Hibma <n_hibma@FreeBSD.org>

Make the speed used by gdb over serial settable in the kernel configuration.

This facilitates the use in circumstances where you are using a serial
console as well. GDB doesn't support anything higher than 9600 baud (19k2
if you are lucky), but the console does.


# d394511d 16-May-2002 Tom Rhodes <trhodes@FreeBSD.org>

More s/file system/filesystem/g


# d1693e17 27-Feb-2002 Peter Wemm <peter@FreeBSD.org>

Back out all the pmap related stuff I've touched over the last few days.
There is some unresolved badness that has been eluding me, particularly
affecting uniprocessor kernels. Turning off PG_G helped (which is a bad
sign) but didn't solve it entirely. Userland programs still crashed.


# 6bd95d70 25-Feb-2002 Peter Wemm <peter@FreeBSD.org>

Work-in-progress commit syncing up pmap cleanups that I have been working
on for a while:
- fine grained TLB shootdown for SMP on i386
- ranged TLB shootdowns.. eg: specify a range of pages to shoot down with
a single IPI, since the IPI is very expensive. Adjust some callers
that used to trigger this inside tight loops to do a ranged shootdown
at the end instead.
- PG_G support for SMP on i386 (options ENABLE_PG_G)
- defer PG_G activation till after we decide what we are going to do with
PSE and the 4MB pages at the start of the kernel. This should solve
some rumored strangeness about stale PG_G entries getting stuck
underneath the 4MB pages.
- add some instrumentation for the fine TLB shootdown
- convert some asm instruction wrappers from functions to inlines. gcc
seems to do a fair bit better with this.
- [temporarily!] pessimize the tlb shootdown IPI handlers. I will fix
this again shortly.

This has been working fairly well for me for a while, but I have tweaked
it again prior to commit since my last major testing round. The only
outstanding problem that I know of is PG_G related, which is why there
is an option for it (not on by default for SMP). I have seen a world
speedups by a few percent (as much as 4 or 5% in one case) but I have
*not* accurately measured this - I am a bit sceptical of these numbers.


# 9c564b6c 16-Feb-2002 John Hay <jhay@FreeBSD.org>

Add the puc (PCI "Universal" Communications) driver. The idea and some of
the structure definitions come from NetBSD to make it easier to share card
definitions. The driver only acts as a shim between the pci bus and the
sio driver. Later pci parallel ports could also be supported through this
driver. Support for most single and multiport pci serial cards should be
as simple as adding its definition to pucdata.c

Tested with the following pci cards:
Moxa Industio CP-114, 4 port RS-232,RS-422/485
Syba Tech Ltd. PCI-4S2P-550-ECP, 4 port RS-232 + 2 parallel ports
Netmos NM9835 PCI-2S-550, 2 port RS-232


# 039b360d 15-Feb-2002 Bruce Evans <bde@FreeBSD.org>

Garbage collect options AVM_A1_PCI, AVM_A1_PCMCIA, DEBUG_LINUX, DEV_APM,
GUS_DMA, GUS_DMA2, GUS_IRQ, OLTR_NO_BULLSEYE_MAC, OLTR_NO_HAWKEYE_MAC,
OLTR_NO_TMS_MAC and PCIC_RESUME_RESET.


# 6df7ca7b 12-Feb-2002 David Malone <dwmalone@FreeBSD.org>

Add an option CPU_ATHLON_SSE_HACK which attempts to enable the SSE
feature bit on newer Athlon CPUs if the BIOS has forgotten to enable
it.

This patch was constructed using some info made available by John
Clemens at http://www.deater.net/john/PavilionN5430.html

Reviewed by: -audit
MFC after: 3 weeks


# 0483b1a8 11-Feb-2002 Andrew Gallatin <gallatin@FreeBSD.org>

Enable polling to be configured into kernels on non i386 platforms. Note that
poll_in_trap is only implemented on i386. I've tested this on alpha.

Approved by: luigi


# c93d0240 21-Dec-2001 Thomas Moestl <tmm@FreeBSD.org>

Move the PCI_ENABLE_IO_MODES option from conf/options.i386 to
conf/options.


# e4fc250c 14-Dec-2001 Luigi Rizzo <luigi@FreeBSD.org>

Device Polling code for -current.

Non-SMP, i386-only, no polling in the idle loop at the moment.

To use this code you must compile a kernel with

options DEVICE_POLLING

and at runtime enable polling with

sysctl kern.polling.enable=1

The percentage of CPU reserved to userland can be set with

sysctl kern.polling.user_frac=NN (default is 50)

while the remainder is used by polling device drivers and netisr's.
These are the only two variables that you should need to touch. There
are a few more parameters in kern.polling but the default values
are adequate for all purposes. See the code in kern_poll.c for
more details on them.

Polling in the idle loop will be implemented shortly by introducing
a kernel thread which does the job. Until then, the amount of CPU
dedicated to polling will never exceed (100-user_frac).
The equivalent (actually, better) code for -stable is at

http://info.iet.unipi.it/~luigi/polling/

and also supports polling in the idle loop.

NOTE to Alpha developers:
There is really nothing in this code that is i386-specific.
If you move the 2 lines supporting the new option from
sys/conf/{files,options}.i386 to sys/conf/{files,options} I am
pretty sure that this should work on the Alpha as well, just that
I do not have a suitable test box to try it. If someone feels like
trying it, I would appreciate it.

NOTE to other developers:
sure some things could be done better, and as always I am open to
constructive criticism, which a few of you have already given and
I greatly appreciated.
However, before proposing radical architectural changes, please
take some time to possibly try out this code, or at the very least
read the comments in kern_poll.c, especially re. the reason why I
am using a soft netisr and cannot (I believe) replace it with a
simple timeout.

Quick description of files touched by this commit:

sys/conf/files.i386
new file kern/kern_poll.c
sys/conf/options.i386
new option
sys/i386/i386/trap.c
poll in trap (disabled by default)
sys/kern/kern_clock.c
initialization and hardclock hooks.
sys/kern/kern_intr.c
minor swi_net changes
sys/kern/kern_poll.c
the bulk of the code.
sys/net/if.h
new flag
sys/net/if_var.h
declaration for functions used in device drivers.
sys/net/netisr.h
NETISR_POLL
sys/dev/fxp/if_fxp.c
sys/dev/fxp/if_fxpvar.h
sys/pci/if_dc.c
sys/pci/if_dcreg.h
sys/pci/if_sis.c
sys/pci/if_sisreg.h
device driver modifications


# e1a7c5c8 05-Nov-2001 Poul-Henning Kamp <phk@FreeBSD.org>

GC userconfig after Peter axed it 15 months ago.


# ae4da688 24-Oct-2001 Jonathan Lemon <jlemon@FreeBSD.org>

Add PCI_ENABLE_IO_MODES option, for BIOSen that neglect this.

Submitted by: Andrew R. Reiter arr@watson.org


# 12428dfd 21-Oct-2001 Hellmuth Michaelis <hm@FreeBSD.org>

Add a driver for the Compaq Microcom 610 ISDN (Compaq series PSB2222I) ISA PnP
card.

Submitted by: Steve Looman
Reviewed by: hm
MFC after: 1 month


# 78f45204 21-Sep-2001 Maxim Sobolev <sobomax@FreeBSD.org>

Introduce new syscons(4) kernel options:
- SC_CUT_SPACES2TABS - when copying text into the cut buffer convert leading
spaces into the tabs;
- SC_CUT_SEPCHARS="XYZ" - treat supplied characters as possible words
separators when the driver searches for words boundaries when doing cut
operation.

Also unify cut code a bit to decrease amount of duplicated code. This fixes
line cut mode, so that it is no longer pads line with useless spaces.

Approved by: ru


# f83fbaf2 21-Sep-2001 Peter Wemm <peter@FreeBSD.org>

Introduce a new option, KVA_SPACE, which can be used to reconfigure
the size of the kernel virtual address space relatively painlessly.
Userland will adapt via the exported kernbase symbol. Increasing
this causes the user part of address space to reduce.


# b40ce416 12-Sep-2001 Julian Elischer <julian@FreeBSD.org>

KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after: ha ha ha ha


# bdf4f9d7 04-Sep-2001 Søren Schmidt <sos@FreeBSD.org>

There is no option IDE_DELAY and havn't been for a long time..


# 5f5e1ff3 02-Sep-2001 Takeshi Shibagaki <shiba@FreeBSD.org>

Always turned on 8bit access card support for the fe driver
both i386/pc98, so options FE_8BIT_SUPPORT was deleted.

Reviewed by: nyan


# 268bdb43 24-Aug-2001 Peter Wemm <peter@FreeBSD.org>

Optionize UPAGES for the i386. As part of this I split some of the low
level implementation stuff out of machine/globaldata.h to avoid exposing
UPAGES to lots more places. The end result is that we can double
the kernel stack size with 'options UPAGES=4' etc.

This is mainly being done for the benefit of a MFC to RELENG_4 at some
point. -current doesn't really need this so much since each interrupt
runs on its own kstack.


# b2c17e33 02-Aug-2001 Peter Wemm <peter@FreeBSD.org>

Add a cosmetic comment.


# 2fe5e0b1 02-Aug-2001 Kazutaka YOKOTA <yokota@FreeBSD.org>

Use #ifdef DEV_SPLASH (from opt_splash.h) rather than
#if NSPLASH > 0 (from splash.h) to test the presence
of the splash driver.


# 9d146ac5 12-Jul-2001 Peter Wemm <peter@FreeBSD.org>

Activate SSE/SIMD. This is the extra context switching support that
we are required to do if we let user processes use the extra 128 bit
registers etc.

This is the base part of the diff I got from:
http://www.issei.org/issei/FreeBSD/sse.html
I believe this is by: Mr. SUZUKI Issei <issei@issei.org>
SMP support apparently by: Takekazu KATO <kato@chino.it.okayama-u.ac.jp>
Test code by: NAKAMURA Kazushi <kaz@kobe1995.net>, see
http://kobe1995.net/~kaz/FreeBSD/SSE.en.html

I have fixed a couple of style(9) deviations. I have some followup
commits to fix a couple of non-style things.


# 2398f0cd 12-Jun-2001 Peter Wemm <peter@FreeBSD.org>

Hints overhaul:
- Replace some very poorly thought out API hacks that should have been
fixed a long while ago.
- Provide some much more flexible search functions (resource_find_*())
- Use strings for storage instead of an outgrowth of the rather
inconvenient temporary ioconf table from config(). We already had a
fallback to using strings before malloc/vm was running anyway.


# de847dd0 13-Apr-2001 Boris Popov <bp@FreeBSD.org>

All NETSMB* options should use opt_netsmb.h file (the joy of multiple repos).


# 681a5bbe 10-Apr-2001 Boris Popov <bp@FreeBSD.org>

Import kernel part of SMB/CIFS requester.
Add smbfs(CIFS) filesystem.

Userland part will be in the ports tree for a while.

Obtained from: smbfs-1.3.7-dev package.


# f1532aad 22-Feb-2001 Peter Wemm <peter@FreeBSD.org>

Activate USER_LDT by default. The new thread libraries are going to
depend on this. The linux ABI emulator tries to use it for some linux
binaries too. VM86 had a bigger cost than this and it was made default
a while ago.

Reviewed by: jhb, imp


# 52a90b77 29-Jan-2001 Peter Wemm <peter@FreeBSD.org>

change 'count eisa' to 'optional eisa' and update the only consumer
of 'NEISA' - userconfig.c.
While there, send some defunct code to the file history.


# 4a29e8f9 26-Jan-2001 Hellmuth Michaelis <hm@FreeBSD.org>

Add experimental support for Eicon.Diehl DIVA 2.0 and 2.02 ISA PnP cards.


# 1467a651 19-Jan-2001 Peter Wemm <peter@FreeBSD.org>

Convert apm from a bogus 'count' into a plain option. Clean out some
other cruft from the files.alpha and files.ia64 that were related to this.


# 558226ea 19-Jan-2001 Peter Wemm <peter@FreeBSD.org>

Use #ifdef DEV_NPX from opt_npx.h instead of #if NNPX > 0 from npx.h


# bffb191e 19-Dec-2000 Takanori Watanabe <takawata@FreeBSD.org>

Add PECOFF (WIN32 Execution file format) support.
To use it, some dll is needed. And currently, the dll is only for NetBSD.
So one more kernel module is needed.
For more infomation,
http://chiharu.haun.org/peace/ .

Reviewed by: bp


# 925be47c 09-Oct-2000 Hellmuth Michaelis <hm@FreeBSD.org>

update to i4b version 0.95.04


# 7321545f 22-Sep-2000 Paul Saab <ps@FreeBSD.org>

Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC,
NBUS, NINTR dynamic and set NCPU to a maximum of 16 under SMP.

Reviewed by: peter


# 65cbb03c 13-Jun-2000 KATO Takenori <kato@FreeBSD.org>

Added new options CPU_PPRO2CELERON and CPU_L2_LATENCY to support
Socket 8 to 370 converters. When (1) CPU_PPRO2CELERON option is
defined, (2) Intel CPU is found and (3) CPU ID is 0x66?, L2 cache is
enabled through MSR 0x11e. The L2 cache latency value can be
specified by CPU_L2_LATENCY option. Default value of L2 cache latency
is 5.

These options are useful if you use Socket 8 to Socket 370 converter
(e.g. Power Leap's PL-Pro/II.) Most PentiumPro BIOSs don't enable L2
cache of Mendocino Celeron CPUs because they don't know Celeron CPUs.
These options are needles if you use a Coppermine (FCPGA) Celeron or
PentiumIII, becuase the L2 cache enable bit is hard wired and L2 cache
is always enabled.


# 0d74cc48 09-Jun-2000 Peter Wemm <peter@FreeBSD.org>

Add option BROKEN_KEYBOARD_RESET to an opt_*.h file


# f548daf0 09-May-2000 John Baldwin <jhb@FreeBSD.org>

Move UKBD_DFLT_KEYMAP into the options file since USB is machine
independent. This allows the ukbd0 driver to compile on the Alpha.

Approved by: o`brien (in principle)


# 300451c4 16-Apr-2000 Mike Smith <msmith@FreeBSD.org>

Some more i386-only BIOS-friendliness:

- Add support for using the PCI BIOS functions for configuration space
accesses, and make this the default.

- Make PNPBIOS the default (obsoletes the PNPBIOS config option).

- Add two new boot-time tunables to disable each of the above.


# aae85521 31-Mar-2000 Hellmuth Michaelis <hm@FreeBSD.org>

Remove useless PCVT_FREEBSD and PCVT_EMU_MOUSE. Add PCVT_GREENSAVER.


# 80060e88 19-Mar-2000 Peter Wemm <peter@FreeBSD.org>

Connect the ISA and PCI compatability shims to an option. In this case
it's options COMPAT_OLDISA and COMPAT_OLDPCI. This is meant to be a
fairly strong incentive to update the older drivers to newbus, but doesn't
(quite) leave anybody hanging with no hardware support. I was talking with
a few folks and I was encouraged to simply break or disable the shims but
that was a bit too drastic for my liking.


# 0f210c92 13-Jan-2000 Nicolas Souchu <nsouch@FreeBSD.org>

Port of ppbus standalone framework to the newbus system.

Note1: the correct interrupt level is invoked correctly for each driver.
For this purpose, drivers request the bus before being able to
call BUS_SETUP_INTR and BUS_TEARDOWN_INTR call is forced by the ppbus
core when drivers release it. Thus, when BUS_SETUP_INTR is called
at ppbus driver level, ppbus checks that the caller owns the
bus and stores the interrupt handler cookie (in order to unregister
it later).

Printing is impossible while plip link is up is still TRUE.
vpo (ZIP driver) and lpt are make in such a way that
using the ZIP and printing concurrently is permitted is also TRUE.

Note2: specific chipset detection is not done by default. PPC_PROBE_CHIPSET
is now needed to force chipset detection. If set, the flags 0x40
still avoid detection at boot.

Port of the pcf(4) driver to the newbus system (was previously directly
connected to the rootbus and attached by a bogus pcf_isa_probe function).


# 4100386c 09-Jan-2000 Bruce Evans <bde@FreeBSD.org>

Put COMPAT_SVR4 in opt_dontuse.h for the same reasons as IBCS2 and
COMPAT_LINUX are there. It shouldn't be and isn't used after config
time, except to complicate the svr4 module makefile.

Moved options for emulators to a separate section.


# 273157da 15-Dec-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

- Add the device resume method. It supercedes the existing resume
routine which hooks the apm driver.
- Rename the PSM_HOOKAPM option to PSM_HOOKRESUME.
- Delete unnecessary #include.


# e5981bd1 14-Dec-1999 Hellmuth Michaelis <hm@FreeBSD.org>

update to isdn4bsd beta release 0.90
drivers which are likely to be ported to newbus are commented out for now


# 09e5e156 07-Dec-1999 Mark Newton <newton@FreeBSD.org>

Add support for compiling SVR4 as a static module

("AND THE CROWD GOES... uh.")

Tested by: Joerg Wunsch <joerg_wunsch@interface-business.de>


# d7ccb880 08-Nov-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

- Added the following options; they have existed in syscons
for sometime, but haven't been registered here.

SC_NORM_ATTR
SC_NORM_REV_ATTR
SC_KERNEL_CONS_ATTR
SC_KERNEL_CONS_REV_ATTR

PR: kern/13176


# 51ebcb23 08-Nov-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

- Added a new kernel configuration option: SC_TWOBUTTON_MOUSE.
The new option will make the right mouse button the `paste' button.
Useful for two button mice.

Submitted by: morganw@engr.sc.edu (Wes Morgan)


# 73027df7 08-Nov-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

- Removed SC_VIDEO_DEBUG. It is broken and useless now.


# 909232c4 06-Nov-1999 Eivind Eklund <eivind@FreeBSD.org>

Options cleanup.
* GC unused options
* Move options that exist on all architectures to conf/options
* Add missing options to LINT
* Sort undocumented options list in LINT

Reviewed by: green


# f1cdff80 01-Nov-1999 Eivind Eklund <eivind@FreeBSD.org>

Elminiate the (unused) TUNE_1542 option.


# b719a139 14-Oct-1999 Doug Rabson <dfr@FreeBSD.org>

Add PNPBIOS option.


# c3aac50f 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# e8ebc7f5 18-Aug-1999 Peter Wemm <peter@FreeBSD.org>

The "LINUX" option isn't actually used or referenced anywhere. The stuff
that goes to opt_dontuse.h is so an opt_*.h file doesn't get created even
though an option may be used for bringing stuff in via files[.*].

Pointed out by: bde


# 0df6adec 06-Aug-1999 Hellmuth Michaelis <hm@FreeBSD.org>

updating isdn4bsd to beta version 0.83


# 6e8394b8 22-Jun-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

The second phase of syscons reorganization.

- Split syscons source code into manageable chunks and reorganize
some of complicated functions.

- Many static variables are moved to the softc structure.

- Added a new key function, PREV. When this key is pressed, the vty
immediately before the current vty will become foreground. Analogue
to PREV, which is usually assigned to the PrntScrn key.
PR: kern/10113
Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>

- Modified the kernel console input function sccngetc() so that it
handles function keys properly.

- Reorganized the screen update routine.

- VT switching code is reorganized. It now should be slightly more
robust than before.

- Added the DEVICE_RESUME function so that syscons no longer hooks the
APM resume event directly.

- New kernel configuration options: SC_NO_CUTPASTE, SC_NO_FONT_LOADING,
SC_NO_HISTORY and SC_NO_SYSMOUSE.
Various parts of syscons can be omitted so that the kernel size is
reduced.

SC_PIXEL_MODE
Made the VESA 800x600 mode an option, rather than a standard part of
syscons.

SC_DISABLE_DDBKEY
Disables the `debug' key combination.

SC_ALT_MOUSE_IMAGE
Inverse the character cell at the mouse cursor position in the text
console, rather than drawing an arrow on the screen.
Submitted by: Nick Hibma (n_hibma@FreeBSD.ORG)

SC_DFLT_FONT
makeoptions "SC_DFLT_FONT=_font_name_"
Include the named font as the default font of syscons. 16-line,
14-line and 8-line font data will be compiled in. This option replaces
the existing STD8X16FONT option, which loads 16-line font data only.

- The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c.

- The video driver provides a set of ioctl commands to manipulate the
frame buffer.

- New kernel configuration option: VGA_WIDTH90
Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. These
modes are mot always supported by the video card.
PR: i386/7510
Submitted by: kbyanc@freedomnet.com and alexv@sui.gda.itesm.mx.

- The header file machine/console.h is reorganized; its contents is now
split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h
(another new file). machine/console.h is still maintained for
compatibility reasons.

- Kernel console selection/installation routines are fixed and
slightly rebumped so that it should now be possible to switch between
the interanl kernel console (sc or vt) and a remote kernel console
(sio) again, as it was in 2.x, 3.0 and 3.1.

- Screen savers and splash screen decoders
Because of the header file reorganization described above, screen
savers and splash screen decoders are slightly modified. After this
update, /sys/modules/syscons/saver.h is no longer necessary and is
removed.


# 9b953cf6 15-Jun-1999 Dag-Erling Smørgrav <des@FreeBSD.org>

Kill option FAILSAFE.

PR: i386/12187
Approved by: bde


# 2df9ad0b 06-Jun-1999 Steve Price <steve@FreeBSD.org>

The FD options are now in /sys/conf/options so need to duplicate them
here and keep people from building new kernels. :)


# 77835954 01-Jun-1999 Jonathan Lemon <jlemon@FreeBSD.org>

Make vm86 a standard component

Reviewed by: silence on on -current


# 80037d6e 20-May-1999 Hellmuth Michaelis <hm@FreeBSD.org>

upgrade isdn4bsd from version 0.71 to the just released version 0.81


# 6f42b336 09-May-1999 Peter Wemm <peter@FreeBSD.org>

Move opt_sio.h options to conf/options and activate in isa/sio.c


# 19477ba0 24-Apr-1999 Peter Wemm <peter@FreeBSD.org>

The fd options changed during new-bus.


# 3e3e4375 13-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Shoot the LKM support in the old wd/wdc/atapi driver set in the head and
perform a cleanup/unifdef sweep over it to tidy things up. The atapi
code is permanently attached to the wd driver and is always probed.

I will add an extra option bit in the flags to disable an atapi probe on
either the master or slave if needed, if people want this.

Remember, this driver is destined to die some time. It's possible that
it will loose all atapi support down the track and only be used for
dumb non-ATA disks and all ata/atapi devices will be handled by the new
ata system.

ATAPI, ATAPI_STATIC and CMD640 are no longer options, all are implicit.

Previously discussed with: sos


# aae5936e 13-Mar-1999 Joerg Wunsch <joerg@FreeBSD.org>

Make NDGBPORTS an official option.


# e9deda23 10-Mar-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

Keyboard driver update in preparation for the USB keyboard driver.

- Refined internal interface in keyboard drivers so that:
1. the side effect of device probe is kept minimal,
2. polling mode function is added,
3. and new ioctl and configuration options are added (see below).

- Added new ioctl: KDSETREPEAT
Set keyboard typematic rate. There has existed an ioctl command,
KDSETRAD, for the same purpose. However, KDSETRAD is dependent on
the AT keyboard. KDSETREPEAT provides more generic interface.
KDSETRAD will still be supported in the atkbd driver.

- Added new configuration options:
ATKBD_DFLT_KEYMAP
Specify a keymap to be used as the default, built-in keymap.
(There has been undocumented options, DKKEYMAP, UKKEYMAP, GRKEYMAP,
SWKEYMAP, RUKEYMAP, ESKEYMAP, and ISKEYMAP to set the default keymap.
These options are now gone for good. The new option is more general.)

KBD_DISABLE_KEYMAP_LOADING
Don't allow the user to change the keymap.


# fda82fc2 10-Mar-1999 Julian Elischer <julian@FreeBSD.org>

Submitted by: Larry Lile
Move the Olicom token ring driver to the officially sanctionned location of
/sys/contrib. Also fix some brokenness in the generic token ring support.

Be warned that if_dl.h has been changed and SOME programs might
like recompilation.


# a2210fe1 09-Mar-1999 Poul-Henning Kamp <phk@FreeBSD.org>

Make TIMER_FREQ a normal, undocumented option. Raise confusion to
a higher level with example in LINT.

Clarify comment about PPS_SYNC. Ignore for now that it doesn't
work in FLL mode, it will in a few days.


# c02553ce 07-Mar-1999 Hellmuth Michaelis <hm@FreeBSD.org>

add kernel config support for i4b driver for AVM Fritz PCI


# c1aca4d0 03-Mar-1999 KATO Takenori <kato@FreeBSD.org>

Added FE_8BIT_SUPPORT into the list. The fe driver includes opt_fe.h.

Submitted by: Takahashi Yoshihiro <nyan@dd.catv.ne.jp>


# c619f2ac 23-Jan-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

- Remove reference to obsolete options.
- Describe options for the vga driver.
Reviewed by: bde


# 2ad872c5 10-Jan-1999 Kazutaka YOKOTA <yokota@FreeBSD.org>

The first stage of console driver reorganization: activate new
keyboard and video card drivers.

Because of the changes, you are required to update your kernel
configuration file now!

The files in sys/dev/syscons are still i386-specific (but less so than
before), and won't compile for alpha and PC98 yet.

syscons still directly accesses the video card registers here and
there; this will be rectified in the later stages.


# a6de7b79 10-Jan-1999 Nicolas Souchu <nsouch@FreeBSD.org>

Forgotten options needed to build last ppbus commit.

Submitted by: "D. Rock" <rock@wurzelausix.CS.Uni-SB.DE>


# c19da41e 01-Jan-1999 Peter Wemm <peter@FreeBSD.org>

Part 1 of pcvt/voxware revival. I hope I have not clobbered any other
deltas, but it is possible since I had a few merge conflicts over the last
few days while this has been sitting ready to go.

Approved by: core


# 925f3681 27-Dec-1998 Mike Smith <msmith@FreeBSD.org>

From the submitter:

CPU_WT_ALLOC does not work correctly for K6-2s of model 8+ and
probably K6-3s (when they appear on the market soon). In addition,
print_AMD_info() incorrectly printfs write allocation's size. I've
fixed them, so they now Do The Right Thing, and added a
"NO_MEMORY_HOLE" option to easily allow 15-16mb range handling for us
K6 and K6-2 users.

Submitted by: Brian Feldman <green@unixhelp.org>


# 19c74962 27-Dec-1998 Poul-Henning Kamp <phk@FreeBSD.org>

Initial entry of ISDN4BSD into the FreeBSD tree.

ISDN4BSD is the work of our brand-new comitter: Hellmuth Michaelis,
who has done a tremendous amount of work to bring us this far.

There are still some outstanding issues and files to bring into
the tree, and for now it will be needed to pick up all the extra
docs from the isdn4bsd release.

It is probably also a very good idea to subscribe to the isdn@freebsd.org
mailing list before you try this out.

These files correspond to release "beta Version 0.70.00 / December
1998" from Hellmuth.


# 50bac46f 27-Dec-1998 Søren Schmidt <sos@FreeBSD.org>

Pre 3.0 branch cleanup sos#2: sound

Superceded by the snd driver...


# 2d1a2544 27-Dec-1998 Poul-Henning Kamp <phk@FreeBSD.org>

forgot to remote options here.


# 084b6a51 19-Dec-1998 Mike Smith <msmith@FreeBSD.org>

Move the "generic" SMP options from options.i386 to conf/options


# 69acd21d 12-Dec-1998 Warner Losh <imp@FreeBSD.org>

Add support for the YE-Data external PCMCIA floppy driver. This
floppy is used on the toshiba Libretto line of subnotebook computers.
It differs from a normal floppy in that you must use PIO rather than
DMA to transfer the data.

To enable this, you must add options "FDC_YE" to your kernel. I don't
have a machine that has a floppy and a pcmcia slot to test to make
sure that this doesn't impact normal floppy units, so I've left this as
an option.

I have ported this to -current and made an attempt to ensure that the
indentation conforms to style(9), aka the bruce filter.

Reviewed by: nate, markm
Submitted by: David Horwitt (dhorwitt@ucsd.edu)


# dadea2fa 04-Dec-1998 Matthew Dillon <dillon@FreeBSD.org>

Obtained from: "Kenneth D. Merry" <ken@plutotech.com>

ICMP_BANDLIM option moved from i386/conf/options.i386 to generic
conf/options since it is platform indpendant.


# 3b60b6ac 03-Dec-1998 Matthew Dillon <dillon@FreeBSD.org>

Reviewed by: freebsd-current

Add ICMP_BANDLIM option


# 340fe9ae 15-Nov-1998 Eivind Eklund <eivind@FreeBSD.org>

Make it possible to adjust the IDE probe delay from kernel config files.


# 5aa27731 03-Nov-1998 Mike Smith <msmith@FreeBSD.org>

Remove USERCONFIG_BOOT, add INTRO_USERCONFIG


# 4536af6a 06-Oct-1998 KATO Takenori <kato@FreeBSD.org>

- Implement enabling write allocate on AMD K5/K6/K6-2 cpus.
The code was originaly contributed by Kelly Yancey
<kbyanc@freedomnet.com> in PR i386/6269 and revised by Akio Morita
<amorita@meadow.scphys.kyoto-u.ac.jp> and me. Test was performed by
Akio Morita and Toshiomi Moriki <moriki@db.is.kyushu-u.ac.jp>.
- Fix stylistic bug in identcpu.c.
- Update copyright in initcpu.c
- Fix typo in LINT.

PR: 6269 and 6270


# 10baba4b 25-Sep-1998 Peter Wemm <peter@FreeBSD.org>

Goodbye BOUNCE_BUFFERS, for a hack it has served us well.

The last consumer of this code (the old SCSI system) has left us and
the CAM code does it's own bouncing. The isa dma system has been
doing it's own bouncing for a while too.

Reviewed by: core


# e91db91d 24-Sep-1998 Kazutaka YOKOTA <yokota@FreeBSD.org>

SC_BAD_FLICKER -> SC_ALT_SEQACCESS
Now supposedly less harmful way of accessing VGA sequencer registers
is default. An alternative, often troublesome, I/O access is optional.

Discussed with: sos, jkh


# a8445737 15-Sep-1998 Søren Schmidt <sos@FreeBSD.org>

Add VESA support to syscons.

Kazu writes:

The VESA support code requires vm86 support. Make sure your kernel
configuration file has the following line.
options "VM86"
If you want to statically link the VESA support code to the kernel,
add the following option to the kernel configuration file.
options "VESA"

The vidcontrol command now accepts the following video mode names:
VESA_132x25, VESA_132x43, VESA_132x50, VESA_132x60, VESA_800x600

The VESA_800x600 mode is a raster display mode. The 80x25 text will
be displayed on the 800x600 screen. Useful for some laptop computers.

vidcontrol accepts the new `-i <info>' option, where <info> must be
either `adapter' or `mode'. When the `-i adapter' option is given,
vidcontrol will print basic information (not much) on the video
adapter. When the `-i mode' option is specified, vidcontrol will
list video modes which are actually supported by the video adapter.

Submitted by: Kazutaka YOKOTA yokota@FreeBSD.ORG


# 700daf5e 15-Sep-1998 Justin T. Gibbs <gibbs@FreeBSD.org>

sd->da, od is gone, no SCSI control devices.
new pass, xpt, and targ devices.

Nuke no longer used AHC options.


# 8aa25588 08-Sep-1998 Brian Somers <brian@FreeBSD.org>

Make PCIC_RESUME_RESET an proper option.
My laptop (a CTX Cybernote) needs this. It claims to have a

PC-Card VLSI 82C146 (5 mem & 2 I/O windows)


# c0fad1a4 10-Aug-1998 Kazutaka YOKOTA <yokota@FreeBSD.org>

- Added SC_BAD_FLICKER for syscons.
- Added the flag 0x40 (quiet bell) for syscons.


# afc2d1c7 08-Aug-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

A few misc changes to get the spigot and meteor board working in 3.0.

Submitted by: Jim Lowe <james@miller.cs.uwm.edu>


# 673796a7 30-Jun-1998 Bruce Evans <bde@FreeBSD.org>

Nuked opt_defunct.h and kern_opt.c. config(8) now generates good enough
warnings about all unknown options.


# b039fc4c 30-Jun-1998 John-Mark Gurney <jmg@FreeBSD.org>

remove option LINUX as it did nothing, add DEBUG_LINUX to debug the
linux emulation...

(actually moved LINUX to opt_dontuse.h)


# 3f139a1a 30-Jun-1998 John-Mark Gurney <jmg@FreeBSD.org>

move OVERRIDE_TUNER from i386 to general options... it's not i386
specific


# a9e837f4 30-Jun-1998 John-Mark Gurney <jmg@FreeBSD.org>

document options to hardwire GUS irq/dmas...


# 5498a452 10-May-1998 John Dyson <dyson@FreeBSD.org>

Support better performance with P6 architectures and in SMP
mode. Unnecessary TLB flushes removed. More efficient
page zeroing on P6 (modify page only if non-zero.)


# 9ff07e32 17-Apr-1998 Amancio Hasty <ahasty@FreeBSD.org>

Reviewed by: Amancio
Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
Roger Hardiman <roger@cs.strath.ac.uk> :
Revised autodetection code to correctly handle both
old and new VideoLogic Captivator PCI cards.
Added tsleep of 2 seconds to initialistion code for PAL users.
Corrected clock selection code on format change.

--- Amancio


# 005092bb 09-Mar-1998 Eivind Eklund <eivind@FreeBSD.org>

Turn "PMAP_SHPGPERPROC" into a new-style option, add it to LINT, and
document it there.


# c2469add 21-Feb-1998 Eivind Eklund <eivind@FreeBSD.org>

Make TUNE_1542 a new-style option, and enable this option in LINT. It
has been disabled since 1994 by mistake (or at least I hope so :-)


# ad64a9aa 19-Feb-1998 Steve Price <steve@FreeBSD.org>

Don't propogate *_DEBUG options. Use DEBUG and recompile
only those parts of the kernel that you are interested in.

Prodded by: Bruce Evans <bde@zeta.org.au>


# 34d1c7b4 19-Feb-1998 Steve Price <steve@FreeBSD.org>

Add an LPT_DEBUG option.

PR: 5773
Submitted by: Dag-Erling Coidan Smorgrav <dag-erli@ifi.uio.no>


# 2589e755 11-Feb-1998 Kazutaka YOKOTA <yokota@FreeBSD.org>

Added SC_DISABLE_REBOOT and SC_MOUSE_CHAR.


# 44429dc4 03-Feb-1998 Bruce Evans <bde@FreeBSD.org>

Converted DISABLE_PSE to a new-style option.

Fixed some formatting in options.i386.


# e0d781f3 30-Jan-1998 Eivind Eklund <eivind@FreeBSD.org>

Make POWERFAIL_NMI, PPS_SYNC and NATM new style options.

This also fixes a couple of defunct options; submitted by bde.


# 3458e54a 26-Jan-1998 Julian Elischer <julian@FreeBSD.org>

Move DPT related options out of i386 specific files
so DPT devices can be used on other PCI (alpha?) machines.

Suggested by: several people


# b37c91fd 25-Jan-1998 Julian Elischer <julian@FreeBSD.org>

Add Simon Shapiro's DPT driver
this shouldn't break anything existing.
Userland utilities to follow.


# bed196b4 24-Jan-1998 Eivind Eklund <eivind@FreeBSD.org>

Turn CLK_USE_TSC_CALIBRATION into a new-style option.


# d46e059f 28-Dec-1997 Poul-Henning Kamp <phk@FreeBSD.org>

wash, sort and put in order various nits from the i586_ctr -> tsc
commit.

Pointed out by: bde


# cb0a3a95 26-Dec-1997 Poul-Henning Kamp <phk@FreeBSD.org>

ename "i586_ctr" to "tsc" (both upper and lower case instances).
Fix a couple of printfs too.

Warning: This changes the names of a couple of kernel options!


# b8e63afa 09-Dec-1997 Kazutaka YOKOTA <yokota@FreeBSD.org>

Remove obsolete psm driver options: PSM_ACCEL, PSM_EMULATION,
PSM_CHECKSYNC.


# b0050656 04-Dec-1997 John-Mark Gurney <jmg@FreeBSD.org>

document and make the NO_F00F_HACK a proper option...

Forgotten by: sef


# d37346ee 18-Oct-1997 Joerg Wunsch <joerg@FreeBSD.org>

Make all the documented (in pcvt(4)) options supported options. While
i was at it, do no longer insist on `PCVT_FREEBSD' being declared in
the config file, but default it to a reasonable value.

More cleanup to follow, but this part is safe for RELENG_2_2, too.


# 98823b23 10-Oct-1997 Peter Wemm <peter@FreeBSD.org>

Convert the VM86 option from a global option to an option only depended
on by the files that use it. Changing the VM86 option now only causes
a recompile of a dozen files or so rather than the entire kernel.


# 6a796ce0 19-Sep-1997 John-Mark Gurney <jmg@FreeBSD.org>

teach sio how to attach to isa PnP cards. This is mainly for use with
internal modems. Currently detects a USR modem, and a couple Supra
modems... vendor id's for sio capabile cards welcomed...

document new option EXTRA_SIO that will increase sio's internal data
structures to support X more serial ports... these are used by the
PnP part of sio for attaching... If you don't have it specified, it
will default to 2... This is defaulted to 0 if you don't have PnP
compiled into your kernel...

also document that if you set the PnP flags (pnp x flags y) to 0x1 that
the modem will be refused to be recognized by the sio driver... this
is for people that want the traditional isa driver to probe and attach
the modem... (for keeping legacy sio numbering)


# d2fb4892 16-Sep-1997 Joerg Wunsch <joerg@FreeBSD.org>

Make FDC_DEBUG a supported option.

Hide the bogus FDC ``chip type'' display behind a (mostly) undocumented
option, since people started to trust the bogus claim. Once we're going
to handle 2.88 MB controllers, we have to redo the chip detection, by
now just leave it hidden.


# 297976f7 04-Sep-1997 Kazutaka YOKOTA <yokota@FreeBSD.org>

Add a new compile option SC_HISTORY_SIZE for syscons.


# 6d58e6cb 31-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Fixed options SHOW_BUSYBUFS and PANIC_REBOOT_WAIT_TIME which were broken
by incomplete cutting and pasting from machdep.c to kern_shutdown.c.

PR: 3953


# f3086365 31-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Put I*86_CPU options in opt_global.h and don't #include "opt_cpu.h"
centrally.


# b6a6d066 08-Aug-1997 John Dyson <dyson@FreeBSD.org>

Add VM86 to the options.


# 3476cdb9 01-Aug-1997 Mike Smith <msmith@FreeBSD.org>

Sanitise the Wavelan entries.
Submitted by: bde


# 36bdbe94 31-Jul-1997 Mike Smith <msmith@FreeBSD.org>

New LINT comments and options for the Wavelan (wl) driver.
Submitted by: Jim Binkley <jrb@cs.pdx.edu>


# 25717e99 25-Jul-1997 Steve Passe <fsmp@FreeBSD.org>

Removed "options SMP_TIMER_NC".


# 38d8a113 25-Jul-1997 Poul-Henning Kamp <phk@FreeBSD.org>

Add option for compiling in a 8x16 font.


# c3ed6aa9 13-Jul-1997 Bruce Evans <bde@FreeBSD.org>

Added CPU_DIRECT_MAPPED_CACHE.


# 5d3b1465 30-Jun-1997 Kazutaka YOKOTA <yokota@FreeBSD.org>

options.i386:
- Added the psm options PSM_HOOKAPM and PSM_RESETAFTERSUSPEND.

LINT:
- Added the psm options PSM_HOOKAPM and PSM_RESETAFTERSUSPEND.
- Added comments on the flag 0x20 for syscons.
- Clarified descriptions on the flags (0x02, 0x04) regarding the cursor
shape in syscons.


# b3196e4b 22-Jun-1997 Peter Wemm <peter@FreeBSD.org>

Preliminary support for per-cpu data pages.

This eliminates a lot of #ifdef SMP type code. Things like _curproc reside
in a data page that is unique on each cpu, eliminating the expensive macros
like: #define curproc (SMPcurproc[cpunumber()])

There are some unresolved bootstrap and address space sharing issues at
present, but Steve is waiting on this for other work. There is still some
strictly temporary code present that isn't exactly pretty.

This is part of a larger change that has run into some bumps, this part is
standalone so it should be safe. The temporary code goes away when the
full idle cpu support is finished.

Reviewed by: fsmp, dyson


# 5ea6cb03 04-Jun-1997 Paul Traina <pst@FreeBSD.org>

Bring back CONSPEED as a last-ditch default if you can't change the speed
any other way.

Requested by: dfr


# 69d2ceed 03-Jun-1997 Paul Traina <pst@FreeBSD.org>

CONSPEED is defunct.


# 98d46ad0 22-May-1997 Mike Smith <msmith@FreeBSD.org>

Add the 'wl' ISA Wavelan driver.
Obtained from: Jim Binkley <jrb@cs.pdx.edu>


# 53815e2f 07-May-1997 Peter Wemm <peter@FreeBSD.org>

Round 1 of a long series of commits..

Move SMP and APIC_IO from opt_smp.h to opt_global.h


# 862b403b 28-Apr-1997 Stefan Eßer <se@FreeBSD.org>

Move CMD640 option from kernel Makefile into opt_wd.h

Submitted by: Wolfgang Helbig <helbig@mx.ba-stuttgart.de>


# 2b450063 27-Apr-1997 Steve Passe <fsmp@FreeBSD.org>

remove the SMP_INVLTLB option, making the code default for APIC_IO.

Reviewed by: informal discussion with Peter Wemm <peter@spinner.DIALix.COM>


# d061973c 27-Apr-1997 Peter Wemm <peter@FreeBSD.org>

Create a special option file "opt_global.h" which is included by all
source files via a 'cc -include opt_global.h ...' type arrangement.
This means we can untangle certain header files.

options.i386 has a placeholder until it has a real member so we can avoid
having to teach config about it just yet.

Reviewed by: bde


# 477a642c 26-Apr-1997 Peter Wemm <peter@FreeBSD.org>

Man the liferafts! Here comes the long awaited SMP -> -current merge!

There are various options documented in i386/conf/LINT, there is more to
come over the next few days.

The kernel should run pretty much "as before" without the options to
activate SMP mode.

There are a handful of known "loose ends" that need to be fixed, but
have been put off since the SMP kernel is in a moderately good condition
at the moment.

This commit is the result of the tinkering and testing over the last 14
months by many people. A special thanks to Steve Passe for implementing
the APIC code!


# 8e711513 05-Apr-1997 Bruce Evans <bde@FreeBSD.org>

Moved COMCONSOLE, CONADDR and CONUNIT to defunct options.


# 4c024bbd 22-Mar-1997 KATO Takenori <kato@FreeBSD.org>

Improved CPU identification and initialization routines. This
supports All Cyrix CPUs, IBM Blue Lightning CPU and NexGen (now AMD)
Nx586 CPU, and initialize special registers of Cyrix CPU and msr of
IBM Blue Lightning CPU.

If revision of Cyrix 6x86 CPU < 2.7, CPU cache is enabled in
write-through mode. This can be disabled by kernel configuration
options.

Reviewed by: Bruce Evans <bde@freebsd.org> and
Jordan K. Hubbard <jkh@freebsd.org>


# 1b0d3143 12-Mar-1997 Joerg Wunsch <joerg@FreeBSD.org>

Since i don't see that anybody is implementing a more correct EISA
probing anytime soon, make EISA_SLOTS a fully supported option. It's
required for the HP NetServer LC series machines.

Next stop: make dset(8) aware of it as well.


# 98d0a0b5 28-Feb-1997 Bruce Evans <bde@FreeBSD.org>

Removed nonexistent option PSM_NO_RESET.


# 6875d254 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not
ready for it yet.


# 488600a4 27-Jan-1997 Bruce Evans <bde@FreeBSD.org>

Added KBD_MAXRETRY and PSM_NO_RESET.


# b6b9dfa1 15-Jan-1997 Søren Schmidt <sos@FreeBSD.org>

Upgrade the kbdio rutines to provide queued kbd & mouse events.
Minor other updates to syscons by me.

Submitted by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 11b5ea72 15-Nov-1996 Justin T. Gibbs <gibbs@FreeBSD.org>

Since there have been so many reports of the Memory Mapped I/O to the
aic7xxx cards failing on certain motherboards, reverse the logic used to
control this feature. AHC_FORCE_PIO is replaced with AHC_ALLOW_MEMIO.
GENERIC no longer needs to specify the AHC_FORCE_PIO option since this is
the default.


# a7320980 11-Nov-1996 Nate Williams <nate@FreeBSD.org>

Removed (now unused) XT_KEYBOARD option.


# 1fe04850 11-Nov-1996 Bruce Evans <bde@FreeBSD.org>

Replaced I586_OPTIMIZED_BCOPY and I586_OPTIMIZED_BZERO with boot-time
negative-logic flags (flags 0x01 and 0x02 for npx0, defaulting to unset = on).
This changes the default from off to on. The options have been in current
for several months with no problems reported.

Added a boot-time negative-logic flag for the old I5886_FAST_BCOPY option
which went away too soon (flag 0x04 for npx0, defaulting to unset = on).

Added a boot-time way to set the memory size (iosiz in config, iosize in
userconfig for npx0).

LINT:
Removed old options. Documented npx0's flags and iosiz.

options.i386:
Removed old options.

identcpu.c:
Don't set the function pointers here. Setting them has to be delayed
until after userconfig has had a chance to disable them and until after
a good npx0 has been detected.

machdep.c:
Use npx0's iosize instead of MAXMEM if it is nonzero.

support.s:
Added vectors and glue code for copyin() and copyout().
Fixed ifdefs for i586_bzero().
Added ifdefs for i586_bcopy().

npx.c:
Set the function pointers here.
Clear hw_float when an npx exists but is too broken to use.
Restored style from a year or three ago in npxattach().


# 33c58c9f 07-Nov-1996 Satoshi Asami <asami@FreeBSD.org>

Remove option I586_FAST_BCOPY. The code will be included by default
if I586_CPU is defined. Note there is a runtime check so the code
won't be run for non-Pentium CPUs anyway.

2.2 candidate, this code has been tested for almost half year in -current.


# 7fe8c7a0 01-Nov-1996 Paul Traina <pst@FreeBSD.org>

add in CONSPEED option


# 1affda38 27-Oct-1996 Justin T. Gibbs <gibbs@FreeBSD.org>

Add two new aic7xxx driver options:

AHC_FORCE_PIO - This forces the driver to use PIO even on systems that
say they have memory mapped the controller's registers. This
seems to fix Ken Lam's problems. I've also placed this option
in the GENERIC kernel file so that we are guaranteed to install
even on these flakey machines.

AHC_SHARE_SCBS - This option attempts to share the external SCB SRAM on
the 398X controllers allowing a totoll of 255 non-paged SCBs.
This doesn't work quite yet, so this option is mostly here to
help 398X owners to experiment and give me feedback until this
works properly.


# dcb21864 23-Oct-1996 Paul Traina <pst@FreeBSD.org>

Remove SC_KBD_PROBE_WORKS option and replace it with a simple run-time flag
bit (0x0008) in the sc driver configuration line. This way it's easy to
boink a generic kernel.

Also, document and place in an opt_ file the #define's for overriding which
serial port is the system console.
Approved by: sos


# d6b9e17e 17-Oct-1996 Bruce Evans <bde@FreeBSD.org>

Improved non-statistical (GUPROF) profiling:
- use a more accurate and more efficient method of compensating for
overheads. The old method counted too much time against leaf
functions.
- normally use the Pentium timestamp counter if available.
On Pentiums, the times are now accurate to within a couple of cpu
clock cycles per function call in the (unlikely) event that there
are no cache misses in or caused by the profiling code.
- optionally use an arbitrary Pentium event counter if available.
- optionally regress to using the i8254 counter.
- scaled the i8254 counter by a factor of 128. Now the i8254 counters
overflow slightly faster than the TSC counters for a 150MHz Pentium :-)
(after about 16 seconds). This is to avoid fractional overheads.

files.i386:
permon.c temporarily has to be classified as a profiling-routine
because a couple of functions in it may be called from profiling code.

options.i386:
- I586_CTR_GUPROF is currently unused (oops).
- I586_PMC_GUPROF should be something like 0x70000 to enable (but not
use unless prof_machdep.c is changed) support for Pentium event
counters. 7 is a control mode and the counter number 0 is somewhere
in the 0000 bits (see perfmon.h for the encoding).

profile.h:
- added declarations.
- cleaned up separation of user mode declarations.

prof_machdep.c:
Mostly clock-select changes. The default clock can be changed by
editing kmem. There should be a sysctl for this.

subr_prof.c:
- added copyright.
- calibrate overheads for the new method.
- documented new method.
- fixed races and and machine dependencies in start/stop code.

mcount.c:
Use the new overhead compensation method.

gmon.h:
- changed GPROF4 counter type from unsigned to int. Oops, this should
be machine-dependent and/or int32_t.
- reorganized overhead counters.

Submitted by: Pentium event counter changes mostly by wollman


# c20b324b 09-Oct-1996 Bruce Evans <bde@FreeBSD.org>

Put I*86_CPU defines in opt_cpu.h.


# d656e316 09-Oct-1996 Bruce Evans <bde@FreeBSD.org>

Added new documented options I586_OPTIMIZED_BCOPY and I586_OPTIMIZED_BZERO.

Added old misnamed option I586_FAST_BCOPY in options.i386.

Added old undocumented CLK* and SI_DEBUG options in LINT.


# d50a3007 05-Oct-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Multiple changes stacked as one commit since they all depend on one another.

First, change sysinstall and the Makefile rules to not build the kernel
nlist directly into sysinstall now. Instead, spit it out as an ascii
file in /stand and parse it from sysinstall later. This solves the chicken-n-
egg problem of building sysinstall into the fsimage before BOOTMFS is built
and can have its symbols extracted. Now we generate the symbol file in
release.8.

Second, add Poul-Henning's USERCONFIG_BOOT changes. These have two
effects:

1. Userconfig is always entered, rather than only after a -c
(don't scream yet, it's not as bad as it sounds).

2. Userconfig reads a message string which can optionally be
written just past the boot blocks. This string "preloads"
the userconfig input buffer and is parsed as user input.
If the first command is not "USERCONFIG", userconfig will
treat this as an implied "quit" (which is why you don't need
to scream - you never even know you went through userconfig
and back out again if you don't specifically ask for it),
otherwise it will read and execute the following commands
until a "quit" is seen or the end is reached, in which case
the normal userconfig command prompt will then be presented.

How to create your own startup sequences, using any boot.flp image
from the next snap forward (not yet, but soon):

% dd of=/dev/rfd0 seek=1 bs=512 count=1 conv=sync <<WAKKA_WAKKA_DOO
USERCONFIG
irq ed0 10
iomem ed0 0xcc000
disable ed1
quit
WAKKA_WAKKA_DOO


Third, add an intro screen to UserConfig so that users aren't just thrown
into this strange screen if userconfig is auto-launched. The default
boot.flp startup sequence is now, in fact, this:

USERCONFIG
intro
visual

(Since visual never returns, we don't need a following "quit").

Submitted-By: phk & jkh


# 14b7c0f2 01-Oct-1996 Paul Traina <pst@FreeBSD.org>

add SC_SPLASH_SCREEN to opt_syscons.h (sigh)


# 6e702c99 30-Sep-1996 Paul Traina <pst@FreeBSD.org>

Document the Adaptec driver options for tagged command queueing and SCB
paging (with a warning not to use SCB paging) and create an opt_aic7xxx.h
file for these options.


# 96fc6efb 11-Sep-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Make userconfig two (default: on) options:
USERCONFIG to enable
VISUAL_USERCONFIG to get the gui stuff too.
Requested by: pst


# dad0de77 10-Sep-1996 Bruce Evans <bde@FreeBSD.org>

Removed bogus LARGMEM code and option. The code paniced when
biosextmem > 65536, but biosextmem is a 16-bit quantity so it is
guaranteed to be < 65536. Related cruft for biosbasemem was
mostly cleaned up in rev.1.26.


# 683cbdf4 10-Sep-1996 Bruce Evans <bde@FreeBSD.org>

Fixed spelling of new SC_KBD_PROBE_WORKS option in options.i386.
It worked because it is spelled correctly in LINT.

Added old obscure syscons options MAXCONS, SLOW_VGA and XT_KEYBOARD.
This file should be sorted both alphabetically and on the module
name by using a consistent prefix for each module, but there is no
consistency in the old options. E.g., MAXCONS is spelled PCVT_NSCREENS
for pcvt.


# 61238661 06-Sep-1996 Paul Traina <pst@FreeBSD.org>

Add ATAPI_STATIC, ATAPI, and SC_KBD_PROBE_WORKS options.


# 6d715e95 11-Jun-1996 Paul Traina <pst@FreeBSD.org>

Put clock calibration #defines in opt_clock.h to ease reconfiguration


# d03b4017 10-May-1996 Bruce Evans <bde@FreeBSD.org>

Hide options for emulators and static file systems in opt_dontuse.h.
These options only apply at config time. Using them at compile time
would break the corresponding lkms.


# 7c243b9a 30-Apr-1996 Bruce Evans <bde@FreeBSD.org>

Removed nonexistent option "LINUX" (what's that :-).


# 03475c25 26-Apr-1996 Søren Schmidt <sos@FreeBSD.org>

Removed options MAXCONS & HARDFONT, they are no longer in use
(and havn't been for long, sigh)


# 803dda17 13-Apr-1996 Bruce Evans <bde@FreeBSD.org>

Fixed `PCVT_FREEBSD=210'.


# 3745f80a 11-Apr-1996 Bruce Evans <bde@FreeBSD.org>

Moved AUTO_EOI_[12] and most sio and pcvt options out of the makefile.


# d69e8502 26-Mar-1996 Garrett Wollman <wollman@FreeBSD.org>

Add support for Pentium and Pentium Pro performance counters.
(This code is as yet untested; to come after man page is written.)
This also adds inlines to cpufunc.h for the RDTSC, RDMSR, WRMSR, and RDPMC
instructions. The user-mode interface is via a subdevice of mem.c;
there is also a kernel-size interface which might be used to aid
profiling.


# 226fd441 15-Mar-1996 Peter Wemm <peter@FreeBSD.org>

Delete recognition for COMPAT_LINUX - it's *gone* now.. :-)


# d66a5066 02-Mar-1996 Peter Wemm <peter@FreeBSD.org>

Mega-commit for Linux emulator update.. This has been stress tested under
netscape-2.0 for Linux running all the Java stuff. The scrollbars are now
working, at least on my machine. (whew! :-)

I'm uncomfortable with the size of this commit, but it's too
inter-dependant to easily seperate out.

The main changes:

COMPAT_LINUX is *GONE*. Most of the code has been moved out of the i386
machine dependent section into the linux emulator itself. The int 0x80
syscall code was almost identical to the lcall 7,0 code and a minor tweak
allows them to both be used with the same C code. All kernels can now
just modload the lkm and it'll DTRT without having to rebuild the kernel
first. Like IBCS2, you can statically compile it in with "options LINUX".

A pile of new syscalls implemented, including getdents(), llseek(),
readv(), writev(), msync(), personality(). The Linux-ELF libraries want
to use some of these.

linux_select() now obeys Linux semantics, ie: returns the time remaining
of the timeout value rather than leaving it the original value.

Quite a few bugs removed, including incorrect arguments being used in
syscalls.. eg: mixups between passing the sigset as an int, vs passing
it as a pointer and doing a copyin(), missing return values, unhandled
cases, SIOC* ioctls, etc.

The build for the code has changed. i386/conf/files now knows how
to build linux_genassym and generate linux_assym.h on the fly.

Supporting changes elsewhere in the kernel:

The user-mode signal trampoline has moved from the U area to immediately
below the top of the stack (below PS_STRINGS). This allows the different
binary emulations to have their own signal trampoline code (which gets rid
of the hardwired syscall 103 (sigreturn on BSD, syslog on Linux)) and so
that the emulator can provide the exact "struct sigcontext *" argument to
the program's signal handlers.

The sigstack's "ss_flags" now uses SS_DISABLE and SS_ONSTACK flags, which
have the same values as the re-used SA_DISABLE and SA_ONSTACK which are
intended for sigaction only. This enables the support of a SA_RESETHAND
flag to sigaction to implement the gross SYSV and Linux SA_ONESHOT signal
semantics where the signal handler is reset when it's triggered.

makesyscalls.sh no longer appends the struct sysentvec on the end of the
generated init_sysent.c code. It's a lot saner to have it in a seperate
file rather than trying to update the structure inside the awk script. :-)

At exec time, the dozen bytes or so of signal trampoline code are copied
to the top of the user's stack, rather than obtaining the trampoline code
the old way by getting a clone of the parent's user area. This allows
Linux and native binaries to freely exec each other without getting
trampolines mixed up.


# 4bd49128 02-Mar-1996 Peter Wemm <peter@FreeBSD.org>

Add more options into the conf/options and i386/conf/options.i386 files
and the #include hooks so that 'make depend' is more useful. This
covers most of the options I regularly use (but not all) and some other
easy ones.


# d9256606 06-Jan-1996 Peter Wemm <peter@FreeBSD.org>

Choose a different name to hold the option definition.. The original one
was overlapping with another file, and making some undesirable behavior a
little worse - it's triggering a bug in config that appears to have been
there for some time (before the options files, anyway.)


# 8890984d 05-Jan-1996 Garrett Wollman <wollman@FreeBSD.org>

Convert BOUNCE_BUFFERS and BOUNCEPAGES to new option scheme.


# a73af3a2 04-Jan-1996 Garrett Wollman <wollman@FreeBSD.org>

convert the math emulation to use the new-style options.


# db6a20e2 03-Jan-1996 Garrett Wollman <wollman@FreeBSD.org>

Converted two options over to the new scheme: USER_LDT and KTRACE.