History log of /src/sys/arch/i386/conf/files.i386
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.409 07-Jan-2025 imil

Enable pv(4) for i386


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.408 23-Feb-2024 andvar

branches: 1.408.2;
s/optionms/options/ in copy-pasted comment.


Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.407 21-Oct-2020 christos

make process_machdep.c included always since it provides register i/o used by
sys_process_getlwpstatus.c which is always included.


# 1.406 20-Oct-2020 christos

harmonize process_machdep.c inclusion.


# 1.405 15-Oct-2020 mgorny

Revert "Merge convert_xmm_s87.c into fpu.c"

I am going to add ATF tests for these two functions, and having them
in a separate file will make it more convenient to build and run them
in userspace.


# 1.404 29-Jun-2020 riastradh

glxsb(4): Remove rijndael dependency.

This doesn't actually seem to depend on it in any way.

XXX Compile-tested only.


# 1.403 25-Apr-2020 bouyer

Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor


Revision tags: bouyer-xenpvh-base2
# 1.402 22-Apr-2020 rin

Make crypto/rijindael optional again as cprng_strong does no longer
depend on it. Dependency is explicitly declared in files.foo if a
component requires it.


Revision tags: phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
# 1.401 18-Oct-2019 manu

branches: 1.401.6;
Multiboot2 kernel support for i386

That implementation works either with BIOS or UEFI bootstrap

This requires the following kernel changes:

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

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

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

And the following bootstrap changes:

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

Fix kernel symbols for multiboot2
src/sys/arch/i386/stand/lib/exec_multiboot2.c 1.2 - 1.3


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
# 1.400 15-Feb-2019 nonaka

Added Microsoft Hyper-V support. It ported from OpenBSD and FreeBSD.

graphical console is not work on Gen.2 VM yet. To use the serial console,
enter "consdev com,0x3f8,115200" on efiboot.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.399 22-Dec-2018 cherry

This change modifies the mainbus(4) entry point for all x86 sub-archs
in the following way:

i) It provides a unified entry point in
x86/x86/mainbus.c:mainbus_attach()
ii) It carves out the preliminary bus attachment sequence that is
common to all sub-archs into
x86/x86/mainbus.c: x86_cpubus_attach()
iii) It consolidates the remaining pathways as internal callee
functions so that these may be called piecemeal if required. A
special usecase of this is XEN PVHVM which may need to call the
native configure path, the xen configure path, or both.
iv) It moves the driver private data structures from
i386/i386_mainbus.c to an x86/ level one. This allows for other
sub-arch's to do similar, if needed. (They do not at the moment).
v) For dom0 kernels, it enables 'acpi0 at mainbus?' and
'acpi0 at hypervisorbus'. This serves two purposes:
a) To demonstrate the possibility of dynamic configuration tree
traversal ordering changes.
b) To allow for the common acpi_check(self, "acpibus") call in
x86/mainbus.c to not barf when it is called from the dom0 attach
path. We allow for the acpi0 device to be a child of mainbus with
the changes to amd64/conf/XEN3_DOM0 and i386/conf/XEN3PAE_DOM0
without actually probing further in the code. This path will later
be pursued in a PVHVM boot codepath.

There should be no operative changes with this change. If there are,
please complain loudly.


# 1.398 22-Dec-2018 cherry

Move mainbus(4) driver files in various x86 sub-archs to name prefixed
versions. This allows us to further modularise them by unifying common
bus probe code in x86/x86/mainbus.c to be introduced next.

This commit has no functional changes. It is done for ease of
visibility of newer diffs in the queue.


# 1.397 03-Dec-2018 christos

KASLR is in files.kern


Revision tags: pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
# 1.396 25-Aug-2018 maxv

Retire NDIS. It appears that it has never worked, after 13 years it was
still marked as "experimental", and nowadays it may be one more obstacle
to MPification of the network stack.

Discussed on tech-net@.


Revision tags: pgoyette-compat-0728
# 1.395 13-Jul-2018 maxv

Remove the X86PMC code I had written, replaced by tprof. Many defines
become unused in specialreg.h, so remove them. We don't want to add
defines all the time, there are countless PMCs on many generations, and
it's better to just inline the event/unit values.


Revision tags: phil-wifi-base pgoyette-compat-0625
# 1.394 23-May-2018 maxv

branches: 1.394.2;
Merge convert_xmm_s87.c into fpu.c. It contains only two functions, that
are used only in fpu.c.


# 1.393 22-May-2018 maxv

Mmh, don't compile spectre.c on Xen.


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415
# 1.392 07-Apr-2018 mrg

add an SPECTRE_V2_GCC_MITIGATION option to x86 kernels, that turns
on the GCC spectre v2 mitigation options.

XXX: pullup-8.
XXX: turn on in all kernels.


Revision tags: pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322
# 1.391 16-Mar-2018 maxv

Remove ipkdb from i386. Also remove unused references in amd64.

I already talked about doing that six months ago on port-i386@. Back then
it was as general cleanup, but now, with SVS etc, we do actually have
good reasons for simplifying the entry points.

Ok kamil@. (christos@ was in the conversation too)


Revision tags: pgoyette-compat-0315 pgoyette-compat-base
# 1.390 08-Jan-2018 maxv

branches: 1.390.2;
Since SVS is now defined in files.x86, remove it from files.amd64
and files.i386.


# 1.389 07-Jan-2018 maxv

Add a new option, SVS (for Separate Virtual Space), that unmaps kernel
pages when running in userland. For now, only the PTE area is unmapped.

Sent on tech-kern@.


Revision tags: tls-maxphys-base-20171202
# 1.388 08-Oct-2017 maxv

KASLR: add workarounds to compute the bootinfo VAs (use the direct map),
and don't use large pages yet. Both will be fixed later.


Revision tags: nick-nhusb-base-20170825
# 1.387 15-Aug-2017 maxv

Merge into x86/.


# 1.386 15-Aug-2017 maxv

Merge into x86/.


# 1.385 12-Aug-2017 maxv

Remove support for vm86 on i386. It is bug-friendly, and there is no point
in having kernel support for this: the instruction set of the CPU is small,
and it can easily be emulated in userland entirely. There are also several
assumptions in the code that are not respected, and the slightest confusion
in the trap frame can lead to ring0 exploits.

vm86 has received zero maintenance. As far as I can tell, it was added
20 years ago in order to make doscmd work. But doscmd has not been
maintained either, and was removed from pkgsrc in 2011. dosbox can be used
instead: it does not require kernel support, and will produce better
results than our flimsy implementation.

Pass 1. (many pieces still in the tree)


# 1.384 09-Aug-2017 maxv

Remove compat_ibcs2 from i386. After a discussion on port-vax, it turns
out that compat_ibcs2 does not implement the iBCS2 standard - which is
x86-specific - but rather SVR3. Our real iBCS2 implementation was a
mixture of compat_ibcs2 and compat_svr4, and was only partial. Keeping
support for this in i386 is totally irrelevant today. I also asked on
port-i386 but didn't wait long.

The main issue is that compat_ibcs2 should have been called compat_svr3.
But CVS does not support renaming files, and moving things around is both
painful and tiring, even more so when no one seems to be interested in
doing this work or in the feature at all. For now compat_ibcs2 is available
on Vax and will stay, until someone (not me) cleans it up.


# 1.383 01-Aug-2017 maxv

Move arch/i386/i386/freebsd_* into compat/freebsd/. COMPAT_FREEBSD is
i386-specific.


# 1.382 01-Aug-2017 maxv

Don't include files.svr4 and files.svr4_32.


# 1.381 29-Jul-2017 maxv

Drop support for svr4 on i386. This feature is not maintained, not
reliable, and of a limited use case. Most svr4 applications got time to be
ported to linux, and we do have a functional, maintained linux emulation.

Reduces the number of entry points into the kernel, the number of
places that need special care (cpu context).

Note that compat_svr4 is still available on sparc.


# 1.380 29-Jul-2017 maxv

Remove the remaining parts of compat_oldboot.


Revision tags: perseant-stdc-iso10646-base
# 1.379 12-Jul-2017 maxv

include opt_pmc.h


Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
# 1.378 10-Mar-2017 maxv

branches: 1.378.6;
Move pmc.c into x86/, it can be shared with amd64.


# 1.377 17-Feb-2017 maxv

Support PMCs on multi-processor systems. Still several things to fix, but
at least it works a little. Will be improved and moved into x86/ soon.


Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.376 15-Dec-2016 kamil

branches: 1.376.2;
Add support for hardware assisted watchpoints/breakpoints API in ptrace(2)

Add new ptrace(2) calls:
- PT_COUNT_WATCHPOINTS - count the number of available hardware watchpoints
- PT_READ_WATCHPOINT - read struct ptrace_watchpoint from the kernel state
- PT_WRITE_WATCHPOINT - write new struct ptrace_watchpoint state, this
includes enabling and disabling watchpoints

The ptrace_watchpoint structure contains MI and MD parts:

typedef struct ptrace_watchpoint {
int pw_index; /* HW Watchpoint ID (count from 0) */
lwpid_t pw_lwpid; /* LWP described */
struct mdpw pw_md; /* MD fields */
} ptrace_watchpoint_t;

For example amd64 defines MD as follows:
struct mdpw {
void *md_address;
int md_condition;
int md_length;
};

These calls are protected with the __HAVE_PTRACE_WATCHPOINTS guard.

Tested on amd64, initial support added for i386 and XEN.

Sponsored by <The NetBSD Foundation>


# 1.375 13-Dec-2016 kamil

Torn down KSTACK_CHECK_DR0, i386-only feature to detect stack overflow

This feature was intended to detect stack overflow with CPU Debug Registers
(x86). It was never ported to other ports, neither amd64 and should be
adapted for SMP...

Currently there might be better ways to detect stack overflows like page
mapping protection. Since the number of Debug Registers is restricted
(4 on x86), torn it down completely.

This interface introduced helper functions for Debug Registers, they will
be replaced with the new <x86/dbregs.h> interface.

KSTACK_CHECK_DR0 was disabled by default and won't affect ordinary users.

Sponsored by <The NetBSD Foundation>


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.374 12-Feb-2014 dsl

branches: 1.374.6; 1.374.10;
Change i386 to use x86/fpu.c instead of i386/isa/npx.c
This changes the trap10 and trap13 code to call directly into fpu.c,
removing all the code for T_ARITHTRAP, T_XMM and T_FPUNDA from i386/trap.c
Not all of the code thate appeared to handle fpu traps was ever called!
Most of the changes just replace the include of machine/npx.h with x86/fpu.h
(or remove it entirely).


# 1.373 07-Feb-2014 dsl

Convert the amd64 build to use x86/cpu_extended_state.h so that the fpu
definitions match those of i386.
Mostly just structure and field renames, in addition:
1) process_xmm_to_s87() and process_s87_to_xmm() moved into
x86/convert_xmm_s87.c so they can be used by amd64's netbsd32 code.
2) The linux signal code simplified to use a structure copy for ths fxsave
data - it matches the hardware definition and won't change.


# 1.372 26-Jan-2014 dsl

Remove support for 'external' floating point units and the MS-DOS
compatible method of handling floating point exceptions.
Make kernel support for teh fpu non-optional (486SX should still work).
Only 386 cpus support external fpu, and i386 support was removed years ago.
This means that the npx code no longer uses port 0xf0 or interupt 13.
All the "npx at isa" lines go from the configs, arch/i386/isa/npx.c
is now mandatory for all i386 kernels.
I've renamed npxinit() to fpuinit() and npxinit_cpu() to fpuinit_cpu()
to match the very similar amd64 functions.
The fpu of the boot cpu is now initialised by a direct call from
cpu_configure(), this enables FP emulation for a 486SX.
(for amd64 the cr0 values are set in locore.S and similar).
This fixes a long-standing bug in linux_setregs() - which did not
save the fpu regsiters if they were active.
I've test booted a single cpu i386 kernel (using anita).
amd64 builds - none of teh changes should affect it.
The i386 XEN kernels build, but I'm not sure where they set cr0, and
it might have got lost!


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1
# 1.371 17-Jul-2013 soren

A few "isa" files are so tightly integrated into the x86 platform code
as to not really be part of the optional isa bus autoconf machinery.

Allows configuring a kernel like so:

include "arch/amd64/conf/GENERIC"
no isa


Revision tags: riastradh-drm2-base agc-symver-base yamt-pagecache-base8
# 1.370 25-Dec-2012 mbalmer

branches: 1.370.2; 1.370.8;
Whitespace fixes.


# 1.369 16-Dec-2012 mbalmer

ptcd(4) is a device driver for the cash drawer port found on Protech PS3100
point of sale terminals. It controls the cash drawer using a gpio(4) device
that attaches at ptcd0: Pin 0 controls the drawer, pin 1 reports the current
state. For details read the manual page.


Revision tags: yamt-pagecache-base7 yamt-pagecache-base6
# 1.368 28-Oct-2012 alnsn

Build bpfjit on i386.


# 1.367 03-Oct-2012 dsl

Remove all references to KVM86.
It was only ever used by APMBIOS - and then only if an option was selected.
Probably didn't work well at all!


# 1.366 30-Sep-2012 dsl

Remove the obvious parts of i386 Advanced power management 'apm' support.
This is the code that predates ACPI, and might once have been able to
power down some laptops.
It hasn't been compiled for ages (it isn't it i386/ALL or any other
standard kernel) and hasn't worked for even longer.
The APM specification was made obsolete by ACPI before it was widely
implemented.
This will allow some other, even more dubious code be removed.
Unfortunately apmbios.h is used by the world !


# 1.365 27-Sep-2012 alnsn

Remove bpf_jit which was ported from FreeBSD recently.

It will soon be replaced with the new bpfjit kernel module.


# 1.364 01-Aug-2012 rmind

branches: 1.364.2;
Add BPF JIT compiler, currently supporting amd64 and i386. Code obtained
from FreeBSD. Also, make few BPF fixes and simplifications while here.
Note that bpf_jit_enable is false for now.

OK dyoung@, some feedback from matt@


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5
# 1.363 07-May-2012 jym

Merge i386 and amd64 version of db_memrw.c.

Use this opportunity to skip calculating the VA of the page. Let the CPU
deal with the invalidation itself through invlpg + destination address to
avoid converting between canonical/non canonical forms.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base
# 1.362 18-Nov-2011 jmcneill

branches: 1.362.4; 1.362.6;
remove Xbox support


Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.361 27-Aug-2011 bouyer

branches: 1.361.2;
Split gcscpcib into MI part, and MD pci attachement which is also in
charge of attaching the MD pcib device.
Will be used by the upcoming evbmips loongson support.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.360 12-Jun-2011 rmind

Welcome to 5.99.53! Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
kernel-lock on some ports). Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.359 26-Apr-2011 joerg

branches: 1.359.2;
Remove PECOFF/Win32 emulation.


# 1.358 26-Apr-2011 joerg

Remove Darwin, MACH and Mach-O support.


# 1.357 10-Apr-2011 christos

Merge db_trace for x86. From: Vladimir Kirillov proger at wilab dot org dot ua


Revision tags: bouyer-quota2-nbase
# 1.356 24-Feb-2011 jruoho

Move PowerNow! to the cpufeaturebus.


Revision tags: uebayasi-xip-base7 bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.355 08-Jul-2010 rmind

branches: 1.355.2; 1.355.4;
Unify i386 and amd64 procfs MD code into x86.


Revision tags: uebayasi-xip-base1
# 1.354 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
# 1.353 03-Jan-2010 dholland

branches: 1.353.2; 1.353.4;
One last bit of whitespace from PR kern/22595.


Revision tags: matt-premerge-20091211
# 1.352 03-Nov-2009 dyoung

Add a kernel configuration flag, SPLDEBUG, that activates a per-CPU log
of transitions to IPL_HIGH from lower IPLs. SPLDEBUG is only available
on i386 and Xen kernels, today.

'options SPLDEBUG' adds instrumentation to spllower() and splraise() as
well as routines to start/stop debugging and to record IPL transitions:
spldebug_start(), spldebug_stop(), spldebug_raise(), spldebug_lower().


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7
# 1.351 09-Aug-2009 christos

move spic to common acpi.


Revision tags: jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.350 16-Jun-2009 bouyer

Split mc146818-related functions from clock.c into rtc.c.
Call rtc_set_ymdhms() from xen/xen/clock.c:xen_rtc_set() for xen3 dom0
kernels as the Xen3 hypervisor doesn't write the new date/time to the CMOS
by itself.
Now a XEN3_DOM0 kernel properly updates the CMOS time.


Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base
# 1.349 21-Apr-2009 nonaka

Added SD/MMC support from OpenBSD.
tested on i386, amd64 at current-users ML by pgoyette@.
tested on zaurus by myself.


# 1.348 16-Apr-2009 rmind

- Add macros to handle (some) trapframe registers for common x86 code.
- Merge i386 and amd64 syscall.c into x86. No functional changes intended.

Proposed on (port-i386 & port-amd64). Unfortunately, I cannot merge these
lists into the single port-x86. :(


# 1.347 30-Mar-2009 rmind

Merge i386 and amd64 ipifuncs.c into x86. No functional changes intended.
XXX: fpu #ifdefs are ugly (should be revisited at some point).


# 1.346 30-Mar-2009 rmind

Merge i386 and amd64 vm_machdep.c into x86. No functional changes intended.
Note: some #ifdefs will be removed with macros.


# 1.345 30-Mar-2009 rmind

Merge/move core_machdep.c into x86, no difference between i386 and amd64.


Revision tags: nick-hppapmap-base2
# 1.344 19-Feb-2009 jmcneill

Mark old vesabios/vesafb flags as obsolete, noted by cube


# 1.343 19-Feb-2009 jmcneill

Remove vesafb, it has been replaced by genfb on x86.


# 1.342 14-Feb-2009 cube

Don't set version deep in the source tree if it's older than the one in
conf/files.


Revision tags: mjf-devfs2-base
# 1.341 20-Dec-2008 ad

branches: 1.341.2;
- Kill NOREDZONE.
- Make the redzone conditional on DIAGNOSTIC.
- Give amd64 an additional page for the uarea. 2 is not enough.


Revision tags: haad-dm-base2 haad-nbase2 ad-audiomp2-base haad-dm-base
# 1.340 20-Nov-2008 ad

Put the COMPAT_NOMID stuff into its own file.


# 1.339 19-Nov-2008 ad

Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime


Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base wrstuden-revivesa-base
# 1.338 13-Jun-2008 christos

branches: 1.338.2; 1.338.4; 1.338.6;
pointless to compile md_root.c without md.c


Revision tags: yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2
# 1.337 18-May-2008 jmcneill

branches: 1.337.2;
Add support for PCI_BUS_FIXUP and PCI_ADDR_FIXUP on amd64.


Revision tags: yamt-nfs-mp-base2
# 1.336 11-May-2008 ad

Simplify x86 identcpu code, and share between i386/amd64.


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.335 10-Apr-2008 dyoung

branches: 1.335.2; 1.335.4; 1.335.6;
Commit straggler: elansc now attaches to something that provides
the 'pcibus' interface instead of the 'pci' interface.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.334 26-Feb-2008 xtraeme

Split off the Transmeta Crusoe Longrun code into its own file, that
way identcpu.c and machdep.c are not cluttered with foreign code.

The driver is built by default as before, but the sysctl subtree will
only be created if longrun is detected and not always as the old code
did. This matches what the FreeBSD code does.

Ok by christos@.


Revision tags: nick-net80211-sync-base
# 1.333 20-Feb-2008 drochner

branches: 1.333.2; 1.333.6;
Since files.wscons et al. are included by ~all ports anyway, include
them in the mi "files" file, and remove include statements from md files.
These shouldn't pull in additional kernel code when not in use, so it
shouldn't do any harm except a risk of namespace collisions which
should be easy to fix.


Revision tags: mjf-devfs-base
# 1.332 25-Jan-2008 joerg

Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
They call a backend function cpu_in_cksum after possibly
computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
The default implementation is moderate fast on most platforms
and provides a 32bit accumulator with 16bit addends for L32 platforms
and a 64bit accumulator with 32bit addends for L64 platforms.
It handles edge cases like very large mbuf chains (could happen with
native IPv6 in the future) and provides a good base for new native
implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.


Revision tags: bouyer-xeni386-nbase
# 1.331 21-Jan-2008 dyoung

Attach two new devices to the AMD Elan SC520 System Controller,
elansc(4).

elanpex(4) is for PCI exception reporting. I've already found some
kernel bugs by reading the exceptions reported. Beware that it
will spam the console a lot while the kernel and pcictl(8) probe
non-existing addresses in PCI configuration space.

elanpar(4) protects the kernel text from writes by the CPU and by
PCI bus masters. As you might guess, this is not compatible with
setting breakpoints using a debugger; detach the device using
'drvctl -d elanpar0' before you try to set breakpoints. In the
future, I hope to extend elanpar(4) to provide general-purpose RAM
write-protection.


Revision tags: bouyer-xeni386-base
# 1.330 16-Jan-2008 ad

Remove options MATH_EMULATE.


# 1.329 12-Jan-2008 ad

- Split crashdump code out into its own file.
- Remove NO_SPARSE_DUMP.
- Minor KNF, sprinkle static.


# 1.328 09-Jan-2008 xtraeme

Add gcscpcib(4): a driver for the AMD CS5535 and CS5536 Companion Device
that acts as PCI-ISA bridge and supports a Timecounter, Watchdog Timer
and GPIO.

Adapted by Yojiro UO and minor tweaks by me from OpenBSD. Tested on
CS5535 and CS5536. This closes PR kern/37577.


Revision tags: matt-armv6-base
# 1.327 06-Jan-2008 ad

Add MODULAR option. Include kernel linker stuff if MODULAR.


Revision tags: vmlocking2-base3
# 1.326 26-Dec-2007 joerg

Add PHYSMEM_MAX_ADDR and PHYSMEM_MAX_SIZE options. This limit physical
memory based on overall size (useful for debugging to keep core dumps
small) or maximum address (when using devices with bus dma limits).
Contrary to REALBASEMEM and REALEXTMEM, they still use the BIOS memory
map and can therefore deal with fragmented memory.


# 1.325 23-Dec-2007 jmcneill

Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.324 18-Dec-2007 joerg

Add new IPI for saving CPU state explicitly, share high-level part of
ACPI wakeup code and teach it how to start the APs again. As a side
effect the CPU_START interface allows choosing between different
bootstrap codes more easily now.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.323 09-Dec-2007 jmcneill

branches: 1.323.2;
Merge jmcneill-pm branch.


Revision tags: yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
# 1.322 22-Nov-2007 bouyer

branches: 1.322.2; 1.322.4;
Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support
to NetBSD/Xen, both Dom0 and DomU.


Revision tags: bouyer-xenamd64-base2 bouyer-xenamd64-base
# 1.321 15-Nov-2007 ad

Remove support for 80386 level CPUs. PR port-i386/36163.


# 1.320 14-Nov-2007 ad

- Remove I486_CPU, I586_CPU, I686_CPU options. They buy us nothing and
clutter the code significantly.
- Remove pccons.


Revision tags: jmcneill-base
# 1.319 26-Oct-2007 xtraeme

branches: 1.319.2;
Share pcib(4) and amdpcib(4) between i386 and amd64; one copy is enough.


# 1.318 26-Oct-2007 xtraeme

- Share pchb(4) between i386 and amd64; one copy is enough for both.
- Move some of the x86 PCI devices into x86/pci/files.pci.
- Add more x86 stuff into x86/conf/files.x86.

ok joerg.


# 1.317 18-Oct-2007 yamt

merge yamt-x86pmap branch.

- reduce differences between amd64 and i386. notably, share pmap.c
between them. it makes several i386 pmap improvements available to
amd64, including tlb shootdown reduction and bug fixes from Stephan Uphoff.
- implement deferred pmap switching for amd64.
- remove LARGEPAGES option. always use large pages if available.
also, make it work on amd64.


Revision tags: yamt-x86pmap-base4
# 1.316 17-Oct-2007 garbled

Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.


Revision tags: yamt-x86pmap-base3 yamt-x86pmap-base2 ppcoea-renovation-base vmlocking-base
# 1.315 26-Sep-2007 ad

branches: 1.315.2;
x86 changes for pcc and LKMs.

- Replace most inline assembly with proper functions. As a side effect
this reduces the size of amd64 GENERIC by about 120kB, and i386 by a
smaller amount. Nearly all of the inlines did something slow, or something
that does not need to be fast.
- Make curcpu() and curlwp functions proper, unless __GNUC__ && _KERNEL.
In that case make them inlines. Makes curlwp LKM and preemption safe.
- Make bus_space and bus_dma more LKM friendly.
- Share a few more files between the ports.
- Other minor changes.


Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
# 1.314 29-Aug-2007 ad

branches: 1.314.2;
Merge most x86 changes from the vmlocking branch, except the threaded soft
interrupt stuff. This is mostly comprised of changes to the pmap modules to
work on multiprocessor systems without kernel_lock, and changes to speed up
tlb shootdowns.


# 1.313 26-Aug-2007 xtraeme

branches: 1.313.2;
Some changes for the ichlpcib driver:

- Moved to x86/pci, so that EM64T systems running NetBSD/amd64 can use it.
- Added support for the TCO on ICH6 or newer chipsets, adapted from
FreeBSD.
- Added timecounter support for the power management timer, adapted from
OpenBSD.
- Plus some misc/cosmetic changes.

Thanks to yukonbob on irc@freenode for testing the TCO part on ICH4-M.
Tested by me with ICH7 too.


Revision tags: nick-csl-alignment-base matt-mips64-base mjf-ufs-trans-base
# 1.312 08-Jul-2007 jmcneill

branches: 1.312.4; 1.312.8;
Add gcscehci(4), an EHCI glue driver for the AMD CS5536 companion
controller. This driver enables USB 2.0 high speed support on the
Soekris net5501 (comBIOS ver. 1.31m).


# 1.311 07-Jul-2007 tsutsui

Remove leftover netns stuff.


# 1.310 27-Jun-2007 xtraeme

Import i386/gcscide(4). A driver for the IDE Controller of the
AMD CS5535 Companion device found in the decTOP.

gcscide0 at pci0 dev 15 function 2
gcscide0: National Semiconductor/AMD CS5535 IDE Controller (rev. 0x00)

Supports Ultra DMA mode 4, Pio Mode 4 and MDMA mode 2.

"Go for it" jmcneill@.


# 1.309 15-Jun-2007 jmcneill

Import driver for the AMD Geode LX AES Security Block, from OpenBSD. The
glxsb(4) driver provides random numbers and AES acceleration.


# 1.308 03-Jun-2007 xtraeme

Remove Enhanced Speedstep stuff from here, it's defined on files.x86
now.


# 1.307 30-May-2007 christos

lock_stubs.S depends on assym.h


# 1.306 17-May-2007 yamt

merge yamt-idlelwp branch. asked by core@. some ports still needs work.

from doc/BRANCHES:

idle lwp, and some changes depending on it.

1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.


Revision tags: yamt-idlelwp-base8
# 1.305 16-Apr-2007 ad

branches: 1.305.2;
Share the sysarch stuff between the x86 ports. PR kern/36046.


Revision tags: thorpej-atomic-base
# 1.304 10-Apr-2007 macallan

include files.wsfb


# 1.303 05-Mar-2007 drochner

branches: 1.303.2; 1.303.4;
clean up how cpus and ioapics are attached at the mainbus:
Seperate "cpubus" and "ioapicbus" -- while they share a common "address
space" (the apic id), the kernel doesn't use this fact. There are different
data passed to cpus and apics, which caused some ugly polymorphism. This
also saves the special "submatch" functions needed to distingush cpus
and ioapics for autoconf. (And it makes that "apid" locators wired
in the kernel configuration are honored now; this allows one to dumb down
an mp box to singleprocessor by userconfig.)
Print "apid" locators in the buses "print" function "as everyone does",
so the per-port cpu drivers don't need to do it.
Being here, constify "struct cpu_functions" and g/c the unused MP_PICMODE
flag.


Revision tags: ad-audiomp-base
# 1.302 18-Feb-2007 dsl

Get config(1) to supply the default parameters for BEEP_ON_HALT.


Revision tags: post-newlock2-merge
# 1.301 09-Feb-2007 ad

branches: 1.301.2;
Merge newlock2 to head.


Revision tags: newlock2-nbase newlock2-base
# 1.300 06-Feb-2007 dyoung

Add cmos(4) for reading/writing CMOS RAM on x86 boxes. This driver
comes from Takahiro Kambe, with some mods by me.


# 1.299 06-Jan-2007 jmcneill

Use the pic16lc@iic driver for setting the system LED, rebooting, and
powering off the machine instead of the assembly code in pic16l.S


# 1.298 04-Jan-2007 jmcneill

Microsoft Xbox support, from Andrew Gillham.

Still requires some bug fixes in the nfe(4) driver; works with USB ethernet.
Requires Xromwell / Cromwell 2.41dev or above to boot. Tested both CD boot
and etherboot.

xboxfb(4) currently does not work properly with component video cables.


Revision tags: yamt-splraiseipl-base5
# 1.297 18-Dec-2006 christos

move to x86/pci/agp_machdep.c from Blair Sadewitz


Revision tags: yamt-splraiseipl-base4 yamt-splraiseipl-base3 netbsd-4-base
# 1.296 25-Oct-2006 jmmv

branches: 1.296.2; 1.296.4;
Mark MULTIBOOT_SYMTAB_SPACE obsolete instead of silently removing it.
Per cube@'s suggestion.


# 1.295 25-Oct-2006 jmmv

Remove the usage of Multiboot's "a.out kludge" to tell the boot loader to
reserve some more space for the BSS section than the binary says. This
trick was used to leave room after the kernel's image to copy the symbol
table following the format required by ksyms_init. (It was also used to
workaround a bug in the physical address fields of the binary, but this has
been long fixed.) Yes, the MULTIBOOT_SYMTAB_SPACE option goes away; yay!

Instead, copy the required data after the kernel in a way that avoids having
to reserve space and use the new ksyms_init_explicit function to avoid the
need to construct a minimal ELF image.

Fixes ksyms when using an "unpatched" GRUB (one that does not contain the
fix to honour the "a.out kludge" for ELF images, even when present) -- i.e.
ddb and lkms. As a side effect, the new code is much clearer to read and
digest.

Closes PR port-i386/32865.


Revision tags: yamt-splraiseipl-base2
# 1.294 19-Oct-2006 drochner

remove relicts of COMPAT_AOUT, fixes compilation problems with old
kernel config files reported by Patrick Welche on current-users


# 1.293 01-Oct-2006 bouyer

Add ipmi(4) driver, from OpenBSD. This requires SMBios support, so add
SMBios detection and mapping to bios32.c, also from OpenBSD (for now this
is only compiled in if ipmi(4) is configured). The sensors and watchdog are
accessible though envsys(4).
Works on i386; some work is needed on amd64 to access the BIOS. It would
eventually work on Xen if the SMBios is accessible (to be tested).


Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
# 1.292 04-Sep-2006 perry

branches: 1.292.2; 1.292.4;
switch to a common clock.c


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7
# 1.291 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.290 08-Jul-2006 christos

Adjust to the new apm backend.


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase chap-midi-base
# 1.289 19-Jun-2006 gdamore

Initial import of bluetooth stack on behalf of Iain Hibbert. (plunky@,
NetBSD Foundation Membership still pending.) This stack was written by
Iain under sponsorship from Itronix Inc.

The stack includes support for rfcomm networking (networking via your
bluetooth enabled cell phone), hid devices (keyboards/mice), and headsets.

Drivers for both PCMCIA and USB bluetooth controllers are included.


Revision tags: gdamore-uart-base
# 1.288 07-Jun-2006 kardel

branches: 1.288.2;
convert to timecounters (from branch simonb-timecounters)


Revision tags: yamt-pdpolicy-base5 elad-kernelauth-base simonb-timecounters-base
# 1.287 06-May-2006 jmcneill

branches: 1.287.2;
Add SpeedStep SMI support for Intel PIIX4 based Pentium III processors.


# 1.286 18-Apr-2006 rittera

A number of minor changes for NDIS. (OK'd by phil)

1. Removed the makeoptions line from arch/i386/conf/GENERIC. Now
ndis_driver_data.h is simply copied into the kernel build directory instead
of editing the config file to specify its location.

2. Uncommented lines in files.i386 and files.pci related to NDIS. NDIS will
not be compiled into the kernel unless the two lines are uncommented from
GENERIC (I checked using nm), so there is no reason for this to be commented
out.

3. Added ndiscvt to usr.sbin/Makefile.


Revision tags: yamt-pdpolicy-base4
# 1.285 04-Apr-2006 gdamore

Convert existing ath users to new Makefile, except for amd64, which needs
the rules due to needing to conditionally postprocess the HAL object file.

Macppc needs a a non-ELF HAL (EABI) object, so take care of that by default
in the atheros include file.


Revision tags: yamt-pdpolicy-base3
# 1.284 31-Mar-2006 rittera

Updated to the latest NDIS code. I added commented out lines in the files
arch/i386/conf/GENERIC, arch/i386/conf/files.i386 and dev/pci/files.pci which
can simply be uncommented to compile NDIS into the kernel. I'll write some
documentation on this soon.

Note that NDIS is still somewhat experimental. It is currently tested and
functions relatively well on on two cards:
1. Dell (Broadcom) TrueMobile 1400 Dual Band WLAN Mini-PCI
2. Intel EtherExpress Pro/100


# 1.283 17-Mar-2006 jmcneill

Add support for the VIA SMBus controller found on the VT8235 PCI-ISA
bridge.


Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
# 1.282 19-Feb-2006 jmcneill

branches: 1.282.2; 1.282.4; 1.282.6;
Add screenblanking support. Not enabled by default, as in some cases it
might cause the system to hang. Where it does work, it works well. Enabled
by setting options VESAFB_PM.

Tested on ATI Radeon M9 (failed), NeoMagic 256AV (passed).


# 1.281 19-Feb-2006 jmcneill

splash is MI; move it out of files.i386


# 1.280 19-Feb-2006 jmcneill

Make VESAFB_WIDTH, VESAFB_HEIGHT, VESAFB_DEPTH defined in opt_vesafb.h.
While we're here, give us NVESAFB in vesafb.h


# 1.279 18-Feb-2006 jmcneill

Import vesa framebuffer driver. Replaces vesa_raster8, which didn't do
anything.


# 1.278 12-Feb-2006 tron

Share Intel hardware random number generator support between amd64 and
i386 port. This will benefit EM64T systems using Intel i9xx chipsets.


# 1.277 03-Feb-2006 jmmv

branches: 1.277.2;
Implement support for 'The Multiboot Specification' so that i386 kernels
can be booted directly from Multiboot-compliant boot loaders (e.g. GRUB).
See the added multiboot(8) manual page for more information.

No objections in tech-kern@; only positive comments.


# 1.276 01-Jan-2006 xtraeme

branches: 1.276.2;
PCI Interrupt router support for VIA VT823[1357] Southbridges.
From OpenBSD.


# 1.275 31-Dec-2005 xtraeme

AMD PowerNow K7 driver written by Martin Vegiard via PR port-i386/26239.

Enabled by default on GENERIC and GENERIC_LAPTOP.

Imported 1 year later... but it's here finally.


Revision tags: ktrace-lwp-base
# 1.274 11-Dec-2005 christos

branches: 1.274.2;
Add a small device to control brightness on the Sony VAIOs.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
# 1.273 07-Nov-2005 yamt

some assym cleanup.
- move copyin and friends from locore.S to their own file, copy.S.
share it between i386 and xen.
- defparam KERNBASE and kill KERNBASE_LOCORE hack.
- add more symbols to assym.h and use it where appropriate.


Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
# 1.272 07-Oct-2005 riz

Add support for the gpio(4) framework to the elansc(4) system controller.

From Alexander Yurchenko (grange@openbsd), via OpenBSD.
Approved by jmcneill.


# 1.271 27-Sep-2005 jmcneill

Add NS Geode PCI-ISA bridge GPIO support.


# 1.270 22-Sep-2005 dyoung

Add a driver for the watchdog timer on the AMD Geode SC1100.


# 1.269 03-Jul-2005 cube

branches: 1.269.2;
Move definitions for PCI_*_FIXUP to files.x86 so that ACPI compiles for
amd64...


# 1.268 25-Jun-2005 dyoung

Move the definitions in dev/pci/files.ath into dev/pci/files.pci.
Stop including dev/pci/files.ath in arch/i386/conf/files.i386,
since we get the same definitions by including dev/pci/files.pci,
now. Remove dev/pci/files.ath.

Add arch/macppc/conf/Makefile.macppc with directives for linking
the Atheros HAL for PowerPC.

In athhal-powerpc-be-eabi.opt_ah.h, #define AH_REGOPS_FUNC 1, since
otherwise the linker complains that the PowerPC HAL cannot link
with register-read/write subroutines.

Add ath(4) to the GENERIC macppc kernel configuration; comment it
out.


# 1.267 22-Jun-2005 dyoung

Resolve conflicts in importation of 18-May-2005 ath(4) / net80211(9)
from FreeBSD. Introduce compatibility shims (sys/dev/ic/ath_netbsd.[ch],
sys/net80211/ieee80211_netbsd.[ch]). Update drivers (an, atu, atw,
awi, ipw, iwi, rtw, wi) for the new net80211(9) API.


# 1.266 22-Jun-2005 enami

Backout part of previous since it breaks kernel build and not described
in the commit log. I don't see merged log of ath(4) yet.


# 1.265 22-Jun-2005 sekiya

It turns out that pci_addr_fixup() doesn't require PCIBIOS either. Decouple,
run it from mainbus_attach().


# 1.264 21-Jun-2005 sekiya

Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


# 1.263 15-May-2005 fvdl

Move linux_trap.c from sys/arch/i386/i386 to sys/arch/x86/x86, and share
it. Remove the amd64 linux_trap.c (which was just a stub with a printf
anyway).


Revision tags: netbsd-3-0-3-RELEASE netbsd-3-0-2-RELEASE netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base
# 1.262 14-Sep-2004 jdolecek

branches: 1.262.10;
do not include "compat/aout/files.aout", COMPAT_AOUT is soon to be removed


# 1.261 30-Aug-2004 drochner

remove the (superfluous) definition of "cpu" as an interface attribute


# 1.260 30-Aug-2004 drochner

Phase out the use of a string as first "attach args" member to control
which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.


# 1.259 10-Jul-2004 cube

Add an option to allow any user to write to machdep.est.frequency.target,
which is very handy on a laptop to control EST through another program that
you don't necessarily want to run as root (in my case, gkrellm).

The option's name is EST_FREQ_USERWRITE, and is disabled by default.


# 1.258 08-Jul-2004 drochner

don't need md timing functions for joystick anymore


# 1.257 04-Jul-2004 christos

add darwin_commpage_machdep.S [does nothing for now, and the name is too long]


# 1.256 30-Apr-2004 lukem

Integrate support for Enhanced SpeedStep Technology (est) that
Michael Eriksson posted to port-i386 on 20031102, with various
modifications by me to work in the new sysctl(9) framework.

The code is enabled with 'options ENHANCED_SPEEDSTEP', and if
the CPU supports EST the following sysctl(8) nodes appear
(with the values that a Dell Inspiron 8600 + WUXGA with a
1.4GHz Pentium M CPU supports):
machdep.est.cpu_brand = Intel(R) Pentium(R) M processor 1400MHz
machdep.est.frequency.target = 1400
machdep.est.frequency.current = 1400
machdep.est.frequency.available = 1400 1200 1000 800 600

If EST support isn't available, the "machdep.est" sysctl sub-MIB
is not created.

Once we have a more general "CPU frequency" control API we can
migrate this code to using that.

Thanks to Michael Erikkson for providing this code!


# 1.255 18-Apr-2004 fvdl

Adapt for new aapic.c location.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.254 25-Mar-2004 jmc

Convert athhal-elf.o to a .uue and add appropriate make hooks to use it


# 1.253 25-Mar-2004 wiz

Backout previous -- this is not enough, config needs to be taught
how to reach partitions above h. Noted by Simon Burge, related to
PR 24905.


# 1.252 25-Mar-2004 wiz

Define maxpartitions to the same value as MAXPARTITIONS in disklabel.h.
Addresses PR 24905 by Simon Burge.


# 1.251 14-Mar-2004 minoura

Add Intel ICHn PCI-LPC bridge driver.
It is a pcib, but with sysmon watchdog support.


# 1.250 13-Mar-2004 bjh21

Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it. This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111. The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers. To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned. Thy just use rather more function pointers than before. Tested
on i386 and (with a new host driver) acorn32. Compiled on several other
affected architectures.


# 1.249 16-Feb-2004 wiz

Remove last traces of DUMMY_NOPS option that was removed some
time ago.
From Jeff Rizzo in PR 24442.


# 1.248 14-Feb-2004 bjh21

Add a new MI attribute, pckbc_machdep_cnattach, and change pckbc_cnattach()
to only call pckbc_machdep_cnattach() if this is present. This allows
pckbc_machdep_cnattach() to be omitted entirely on most ports, where it only
returns ENXIO anyway.

The devices with this attribute at the moment are pc(4) on i386 and bebox, and
pckbc on sparc, where pckbc_machdep_cnattach() mysteriously returns 0 rather
than ENXIO.


# 1.247 20-Jan-2004 jdolecek

cleanup old lpt(4) attachment, and glue ppbus in so that they can coexist:
* lpt device is defined in MI place (dev/ppbus/files.ppbus), dev/ic/lpt.c
is included there too; dev/ic/lpt.c is not included if ppbus is
configured or if there is alternative platform lpt (like for pc532)
* g/c MD lpt definitions and custom puc/upc attachments,
glue moved to conf/files and dev/pci/files.pci respectively; remove
device lpt definition from dev/isa/files.isa
* add ppbus parport attribute, atppc device attachments, adjust plip and lpt
glue


# 1.246 16-Nov-2003 tls

We can't use bf_cbc.S if I386_CPU is defined; the 80386 doesn't have
bswapl, and bf_cbc.S uses it. Unfortunately, this means that GENERIC
will no longer use the asm code -- though it will still use the asm
for the basic Blowfish transform. This won't slow down the KAME IPsec
(since it rolls its own CBC) but may slow down fast-ipsec in kernels
that have I386_CPU defined.


# 1.245 13-Oct-2003 dyoung

For PCI attachment, ath(4) needs both the HAL binary and the files
listed in dev/pci/files.ath.


# 1.244 10-Sep-2003 christos

Add compat_16_machdep.c


# 1.243 06-Sep-2003 fvdl

Move the bulk of pci_intr_string into a seperate intr_string function. Use
that new function to print the pciide compat interrupt in pciide_machdep.c.
Share pciide_machdep.c between amd64 and i386.


# 1.242 27-Jul-2003 thorpej

Since everyone uses clock_subr.c (or should, if they don't currently),
list it in conf/files instead of in every port's files.*.


# 1.241 07-Jul-2003 dsl

Switch to using MI code to find disklabel on MBR disks.


# 1.240 02-Jun-2003 gmcgarry

branches: 1.240.2;
Pull-in GPIB.


# 1.239 15-May-2003 wiz

Remove last traces of obsolete olms and omms drivers.
Ok'd by drochner and fvdl.


# 1.238 14-May-2003 drochner

remove opms attachment stuff which is pointless after
opms itself was removed


# 1.237 11-May-2003 fvdl

Update for acpi file move to sys/arch/x86/x86.


# 1.236 25-Mar-2003 jmmv

Implement the beep on halt feature. When enabled, it makes the kernel beep
the computer speaker when it's completely safe to power down the machine
(after the "The operating system has halted." message). This is useful for
headless machines.

The feature is only enabled if the BEEP_ONHALT option is defined (disabled by default). It can be tuned through the BEEP_ONHALT_{COUNT,PERIOD,PITCH} options.

Closes my own PR kern/18792.


# 1.235 02-Mar-2003 christos

microtime.S depends on assym.h


# 1.234 01-Mar-2003 fvdl

Move lock_machdep.c to arch/x86/x86.


# 1.233 01-Mar-2003 fvdl

Move the CPU identification out of machdep.c into a seperate file.


# 1.232 27-Feb-2003 fvdl

Catch up with consinit.c move.


# 1.231 27-Feb-2003 fvdl

Catch up with isa_machdep.c and pci_machdep.c move.


# 1.230 26-Feb-2003 fvdl

Adapt for move of files to arch/x86.


# 1.229 16-Feb-2003 augustss

Undo accidental commit of this file.


# 1.228 16-Feb-2003 augustss

Add uax(4) (and url(4) in some cases).


# 1.227 05-Feb-2003 nakayama

Share i386/tsc_microtime.c with alpha and sparc64 as kern_microtime.c.
(approved by martin)


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.226 07-Jan-2003 fvdl

Add MPACPI option (commented out). Add MPBIOS option by default, it is
needed now to do MP BIOS MP configuration.


Revision tags: fvdl_fs64_base
# 1.225 28-Dec-2002 jmcneill

Add an npx at acpi(4) attachment


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base
# 1.224 25-Nov-2002 manu

Added an empty shell for signal delivery. Now we just have to fill the
machine dependant bits.


# 1.223 22-Nov-2002 fvdl

New interrupt code. The basic idea behind it is to hide the differences
in interrupt controllers in struct pic, and try to keep as much
common code as possible. At the lowest (asm) level, this is done
with CPP macros.

The main structure is now struct intrsource, describing an established
interrupt line, of any kind (soft/hard local apic/legacy apic/IO apic).
For quick masking, there may be a maximum of 32 sources per CPU.
Sources can be assigned to any CPU in the MP case, though currently they
all go to the boot CPU.


# 1.222 14-Nov-2002 christos

darwin needs us.


# 1.221 13-Nov-2002 christos

add COMPAT_DARWIN


# 1.220 26-Oct-2002 jdolecek

now that mem_no is emitted by config(8), there is no reason to keep
copy of more or less identical iskmemdev() for every arch; move the function
to spec_vnop.c, and g/c machine-dependant copies


Revision tags: kqueue-aftermerge kqueue-beforemerge
# 1.219 11-Oct-2002 thorpej

* Move config defns for the crypto algorithms into their own files.
Define an attribute for each crypto algorithm, and use that attribute
to select the files that implement the algorithm.
* Give the "wlan" attribute a dependency on the "arc4" attribute.
* Give the "cgd" pseudo-device the "des", "blowfish", "cast128", and
"rijndael" attributes.
* Use the new attribute-as-option-dependencies feature of config(8) to
give the IPSEC_ESP option dependencies on the "des", "blowfish", "cast128",
and "rijndael" attributes.


# 1.218 07-Oct-2002 fvdl

lock_machdep.c only depends on LOCKDEBUG, in which case it's also
needed in the non-MP case (since pmap.c now calls __cpu_simple_lock
directly)


# 1.217 06-Oct-2002 fvdl

Define NOREDZONE and use it in the *_TINY config files to save a page
per process.


# 1.216 04-Oct-2002 elric

assign majors for raw and cooked cgd's.


Revision tags: kqueue-base
# 1.215 01-Oct-2002 fvdl

Merge Bill Sommerfeld's i386 MP branch. This code has some known
caveats, but works quite well in a lot of MP cases, and all
UP cases that I have tested. Parts of this will hopefully be
reworked in the not-too-distant future.


# 1.214 06-Sep-2002 gehenna

Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

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

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

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

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

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

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

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

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.


Revision tags: gehenna-devsw-base sommerfeld_i386mpnext sommerfeld_i386mpbase_1
# 1.213 12-Aug-2002 thorpej

Add a driver for the AMD Elan SC520 System Controller. The "elansc"
driver attaches where "pchb" would normally attach (it matches at a
higher match priority). The "elansc" driver currently provides support
for the watchdog timer built-in the SC520.

Thanks to Jasper Wallace for laying the ground-work for this (most
notably by providing a work-around for a watchdog-related bug in the
SC520).


# 1.212 07-Aug-2002 briggs

PERFCTRS is now defflagged in conf/files.


# 1.211 10-Jul-2002 drochner

get some more info out of the VESA BIOS and attach subdevices for
8-bit pseudo color and text modes
still doesn't do anything useful
(It would be easy to attach a wsdisplay, but we have to cooperate with the
PCI or ISA attached VGA drivers. There are open issues.)


# 1.210 07-Jul-2002 drochner

add definitions for the in-kernel vm86 code and vesabios attachment,
add an option APM_USE_KVM86 which does what its name implies


# 1.209 03-Jul-2002 yamt

add KSTACK_CHECK_DR0.


# 1.208 18-Jun-2002 tshiozak

add MD support for ACPI sleep/wakeup.


# 1.207 17-Jun-2002 christos

glue for MD acpi devices.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.206 18-Apr-2002 wiz

branches: 1.206.2;
Remove opms(4) and its device, /dev/pms0, from the i386 port, because
it has been obsoleted by pms(4).

Reviewed by fvdl and christos.


# 1.205 16-Apr-2002 thorpej

* Move the mii_bitbang attribute into dev/mii/files.mii
* Pull in dev/mii/files.mii from conf/files, rather than playing
the magic "files include order" dance in N machine-dependent
configuration definitions.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.204 02-Feb-2002 jdolecek

branches: 1.204.4;
Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.


# 1.203 21-Jan-2002 jdolecek

Switch to MI dev/md_root.c for archs which don't have any special
memory disk hooks (i.e. everything except atari).


# 1.202 03-Dec-2001 lukem

defparam (not defflag) PCIBIOS_IRQS_HINT. pointed out by Kevin Lahey


# 1.201 28-Nov-2001 lukem

- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.200 26-Nov-2001 itojun

in_cksum.s is needed for inet6 too


# 1.199 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.198 28-Sep-2001 thorpej

Add ACPI config glue.


# 1.197 19-Sep-2001 thorpej

Add code to frob the MTRR-like registers on the AMD K6-2
and AMD K6-III.


Revision tags: post-chs-ubcperf pre-chs-ubcperf
# 1.196 15-Sep-2001 thorpej

Give each AGP controller its own attribute, and let the "agpbus"
device (rather, the device that carries that attribute) also
carry one or more attributes indicating which type of controller
it might be.

This will allow systems that might have AGP, but would never have
e.g. an Intel PCI-Host bridge, to trim out code that won't be used.


# 1.195 15-Sep-2001 thorpej

Move the AGP device declaration stuff into files.agp.


# 1.194 10-Sep-2001 fvdl

Add agp files (enabled only on i386, but the main code itself should not
be MD, so could be enabled on other platforms).


# 1.193 09-Sep-2001 perry

boost maximum MAXUSERS to 128


# 1.192 09-Sep-2001 tls

Add asm versions of blowfish and des transforms for i386.

This also involved updating the in-kernel DES functions to correspond
to the versions in our in-tree OpenSSL, because the des_SPtrans table
has changed; the asm code will not work with the old permutation table!

C and i386 asm code for the DES, 3DES, and Blowfish CBC modes is also
included; it is not currently built as the ESP processing in esp_core.c
splits the CBC operation and the cipher transform apart. Hopefully that
will be fixed as there is a substantial performance improvement to be had
from doing so. It will remain necessary to use the C version of the
Blowfish CBC function on some i386 machines, however, as the asm version
uses bswapl, which ony 486 and later processors have. The DES CBC code
doesn't have this problem.

Finally, change esp_core.c to use the ecb3_encrypt function instead of
calling ecb_encrypt three times; this improves performance a bit, in
particular in the asm case.


Revision tags: thorpej-devvp-base
# 1.191 03-Sep-2001 drochner

branches: 1.191.2;
add wsfont pseudo device


# 1.190 27-Aug-2001 haya

Add support for ALi M1543 in pcibios.


# 1.189 14-Jul-2001 christos

add mach/macho files


# 1.188 18-Jun-2001 christos

branches: 1.188.2;
Add an e_trapsignal member to struct emul, so that emulated processes can
send the appropriate signal depending on the trap type.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.187 22-Apr-2001 jdolecek

add major { ed = 20 }


# 1.186 19-Apr-2001 uch

patch PR port-i386/11114 by MINOURA Makoto.


# 1.185 14-Apr-2001 thorpej

Generic soft interrupt implementation for NetBSD/i386. This could
probably be tuned somewhat, but this is a stop-gap measure to hold
us until Bill Sommerfeld's new interrupt code comes in from the
MP branch.


# 1.184 25-Mar-2001 jdolecek

Add an autoconfig node for PCI-MCA bridges. Configures MCA bridges
via callback. This beast is very rare, present only on some IBM PCs.
Code was copied off pceb.


# 1.183 06-Mar-2001 fvdl

Use assembly version of in4_cksum (which is a piece of code that
does some of the extra work and then jumps into in_cksum).


# 1.182 24-Feb-2001 lukem

branches: 1.182.2;
whitespace police


# 1.181 11-Feb-2001 chs

fix REALBASEMEM/REALEXTMEM and defopt them while we're at it. from jason.


# 1.180 17-Jan-2001 fvdl

Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.


# 1.179 18-Dec-2000 jdolecek

separate the freebsd syscall code similarily to other emulations


# 1.178 11-Dec-2000 mycroft

Introduce 2 new flags in types.h:
* __HAVE_SYSCALL_INTERN. If this is defined, e_syscall is replaced by
e_syscall_intern, which is called at key places in the kernel. This can be
used to set a MD syscall handler pointer. This obsoletes and replaces the
*_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL. If this is defined, certain (deprecated) elements in
struct emul are omitted.


# 1.177 09-Dec-2000 mycroft

Add a separate svr4_syscall().


# 1.176 02-Dec-2000 jdolecek

as discussed on tech-kern, put linux and ibcs2 syscall code to separate
files and change syscall() to call p->p_emul->e_syscall() if it's not NULL


# 1.175 26-Nov-2000 jdolecek

comment out entries accidentaly committed together with previous
change


# 1.174 26-Nov-2000 ad

lsu -> ld, by popular request.


# 1.173 26-Nov-2000 jdolecek

rename COMPAT_locore.s to COMPAT_sigcode.s - that is more suitable name for it
make the files compilable within LKM


# 1.172 21-Nov-2000 jdolecek

put compat-specific locore code to separate *_locore.s files


# 1.171 08-Nov-2000 ad

Pull in dev/i2o/files.i2o.


# 1.170 05-Nov-2000 onoe

First Prototype implementation of network interface part for IEEE1394 (if_fw).

Current status:
Only OHCI chip is supported (fwohci).
ping (IPv4) works with Sony's implementation (SmartConnect) on Win98.
sometimes works but not stable.
Not implemented yet:
IRM (Isochronous Resource Manager) functionality.
Link layer fragmentation.
Topology map.
More to do:
clean ups
MCAP
charactor device part
dhcp

There is no entry in GENERIC config file yet.
Follow sys/dev/ieee1394/IMPLEMENTATION to enable if_fw.


# 1.169 27-Oct-2000 thorpej

Add support for sampling the random number generator on
the 810, 815, 820, and 840 chipsets. From OpenBSD, modified
for NetBSD by me.


# 1.168 19-Oct-2000 ad

- ca -> lsu
- Hook in twe.


# 1.167 13-Sep-2000 thorpej

Add support for using the 586- and 686-class performance
counters.


# 1.166 07-Sep-2000 thorpej

Add optional support for mapping the kernel with large (4MB) pages.
Right now, only does kernel text, and wastes a little memory, but
there is some noticeable performance improvement even with just text.


# 1.165 21-Aug-2000 itohy

Fix typos.
No functional changes.


# 1.164 10-Aug-2000 soda

move PCIBIOS_INTR_FIXUP_FORCE, PCIBIOS_INTR_GUESS and PCIBIOS_IRQS_HINT
to opt_pcibios.h.


Revision tags: sommerfeld_i386mp_houseclean netbsd-1-5-base
# 1.163 16-Jun-2000 thorpej

branches: 1.163.2;
Rearrange the npx driver a little to allow for multiple attachments
and add a pnpbios atttachment for it.


# 1.162 11-Jun-2000 mycroft

Remove pcvt tentacles.


# 1.161 04-Jun-2000 gmcgarry

Add APM_ALLOW_BOGUS_SEGMENTS - allow the use of data segments which
are in unexpected locations.


# 1.160 04-Jun-2000 mycroft

Add stubs for PE/COFF.


Revision tags: minoura-xpg4dl-base
# 1.159 11-May-2000 jdolecek

branches: 1.159.2;
Add i386-specific part of MicroChannel Architecture bus support, as
found in some older IBM PS/2 machines.

This code is based upon work by Scott D. Telford, with some minor bits
in arch/i386/mca/mca_machdep.c taken from FreeBSD.

XXX this is still very experimental and development version; use at your
XXX own risk


# 1.158 28-Apr-2000 uch

add PCIBIOS_ADDR_FIXUP, PCIBIOS_IRQS_HINT configuration. and its sample.


# 1.157 23-Apr-2000 thorpej

Carve off the ISA configuration bits from the floppy driver. Driver is
still ISA-specific, but we can attach ISA instances with different
configuration mechanisms now.


Revision tags: sommerfeld_i386mpbase_20000422
# 1.156 07-Apr-2000 thorpej

Use dev/isa/fd.c.


# 1.155 06-Apr-2000 wiz

comment out (erroneously?) added mcabus, until dev/mca exists


# 1.154 06-Apr-2000 jdolecek

Switch to MI ns_cksum.c - the MD ns_cksum.c is equivalent to it
(modulo some u_intX_t vs. u_char type usage). In particular, the
MD version didn't contain any MD code.


# 1.153 26-Mar-2000 martin

Added a PCI frontend for the legacy ISA joystick driver.
Some PCI soundcards don't seem to use the generic gameport function with
interface 0x10 used here, but have either an own BAR dedicated to this
(i.e. Sonic Vibes or ESS Solo-1) or specify their own device (see
PCI_PRODUCT_CREATIVELABS_SBJOY in sys/dev/pci/pcidevs.h).
Probably these use a similar simple sheme and adding a frontend for them would
be trivial, but I don't own any of these cards, so I didn't.


# 1.152 22-Mar-2000 ws

Make IPKDB working again.
Add support for i386 debugging and pci-based ne2000 boards.


# 1.151 16-Mar-2000 ad

Make ca(4) useable as a block/boot device.


# 1.150 15-Mar-2000 fvdl

Add new files for common ahc EISA/VL code.


# 1.149 14-Mar-2000 oster

Add the RAIDframe device major to the machine-dependent config files
so that the right entries get added to dev_name2blk[]. Needed for / on RAID.
(Whoops! I missed checking these in when adding the RAID_AUTOCONFIG stuff.)


# 1.148 04-Mar-2000 mycroft

Invert the APM_NO_POWER_PRINT flag, and make sure it's off by default.


# 1.147 14-Feb-2000 thorpej

branches: 1.147.2;
Allow arch-specific code to specify in4_cksum() like it can specify
in_cksum().


Revision tags: chs-ubc2-newbase
# 1.146 26-Jan-2000 drochner

next step in getting machdep.c maintainable - put bus_space related
stuff into a separate file


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.145 21-Dec-1999 drochner

machdep.c is becoming an unmaintainable mess
put console initialisation into a separate file


# 1.144 08-Dec-1999 joda

defopt APM_DISABLE_INTERRUPTS


# 1.143 17-Nov-1999 thorpej

Add PCI bus renumbering code.


# 1.142 17-Nov-1999 thorpej

Add glue for BIOS32 and PCI BIOS.


Revision tags: fvdl-softdep-base
# 1.141 12-Nov-1999 drochner

include "pnpbios" definitions


Revision tags: comdex-fall-1999-base
# 1.140 25-Oct-1999 drochner

make the code which decodes the MAKEBOOTDEV()-style boot device
(as passed by the pre-1.3 bootloader) optional


# 1.139 15-Oct-1999 haya

branches: 1.139.2; 1.139.4;
This is the first check-in of CardBus driver. CardBus driver contains
CardBus bus stub, YENTA PCI-CardBus bridge (cbb), 3Com 3C575TX driver
(ex) and Intel fxp driver.

TODO:
o Conform to the KNF more strictly.
o Be unified with pcmcia code as much as possible.
o Add more drivers for CardBus card, such as APA-1480 or USB card.

The affected files are listed below.

sys/arch/i386/conf/files.i386
sys/arch/macppc/conf/files.macppc
sys/conf/files
sys/dev/ic/elinkxl.c
sys/dev/ic/elinkxlvar.h
sys/dev/ic/i82365.c
sys/dev/ic/i82365var.h
sys/dev/isa/i82365_isasubr.c
sys/dev/pci/files.pci
sys/dev/pcmcia/pcmcia.c
sys/dev/pcmcia/pcmciachip.h

The added files are listed below.

sys/arch/i386/conf/CARDBUS
sys/arch/i386/include/rbus_machdep.h
sys/arch/i386/i386/rbus_machdep.c
sys/arch/macppc/include/rbus_machdep.h
sys/arch/macppc/macppc/rbus_machdep.c
sys/dev/cardbus/if_ex_cardbus.c
sys/dev/cardbus/Makefile.cardbusdevs
sys/dev/cardbus/cardbus.c
sys/dev/cardbus/cardbus_map.c
sys/dev/cardbus/cardbusdevs
sys/dev/cardbus/cardbusdevs.h
sys/dev/cardbus/cardbusdevs_data.h
sys/dev/cardbus/cardbusvar.h
sys/dev/cardbus/cardslot.c
sys/dev/cardbus/cardslotvar.h
sys/dev/cardbus/devlist2h.awk
sys/dev/cardbus/files.cardbus
sys/dev/cardbus/if_fxp_cardbus.c
sys/dev/cardbus/pccardcis.h
sys/dev/cardbus/rbus.c
sys/dev/cardbus/rbus.h
sys/dev/pci/pccbb.c
sys/dev/pci/pccbbreg.h
sys/dev/pci/pccbbvar.h


# 1.138 09-Sep-1999 itohy

branches: 1.138.2;
Introduce new option APM_NO_POWER_PRINT which disables printing
power status on the console (if apmd is absent).
Some systems generate APM_POWER_CHANGE events too frequently (more then
once per minute), and printing the status makes single user operations
rather difficult.


# 1.137 17-Aug-1999 drochner

oops - there got something into the last commit which shouldn't


# 1.136 17-Aug-1999 drochner

add a flag to control use of APMv1.2


Revision tags: chs-ubc2-base
# 1.135 28-Jul-1999 mellon

- compat_aout requires compat_13_machdep.c for definition of sigreturn.


# 1.134 17-Jun-1999 thorpej

PMAP_NEW is no longer optional on the i386; the old pmap's page table
allocation strategy no longer works at all. Move pmap.new.* to pmap.*.

To read the revision history of PMAP_NEW up until this merge, use cvs
rlog of the old pmap.new.* files.


# 1.133 07-Jun-1999 thorpej

Only declare block major numbers for devices which can be the root device.


Revision tags: kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.132 23-Mar-1999 bad

branches: 1.132.2; 1.132.4;
config(8) glue for the TCIC PCMCIA backend.


# 1.131 11-Feb-1999 christos

Add COMPAT_AOUT glue.


Revision tags: bouyer-ide-last-dist
# 1.130 07-Feb-1999 drochner

-pull in mi date conversion functions
-include files.vme (not worth much normally, but makes it easy to
plug in something)


# 1.129 28-Jan-1999 drochner

defopt PCI_CONF_MODE


# 1.128 23-Jan-1999 drochner

busmice have wsmouse attribute now
add backwards compatible mice
update for pms->opms renaming


# 1.127 20-Dec-1998 nathanw

Fix up support for PCI attachments of pcic devices on i386 in general,
and the Cirrus Logic CL-PD6729 in particular.

From danw@mit.edu in PR port-i386/6436.


Revision tags: kenh-if-detach-base
# 1.126 26-Nov-1998 pk

Export the `pcmciabus' attribute on the `pcic' controller.


# 1.125 12-Nov-1998 thorpej

defopt the APM options.


Revision tags: chs-ubc-base
# 1.124 13-Oct-1998 bouyer

Add a CPURESET_DELAY options which specifies the delay (in milliseconds)
between the "rebooting" message and the hardware reset. If set to 0, the call
to delay() is disabled. Default is 2s.


# 1.123 12-Oct-1998 bouyer

Merge bouyer-ide


Revision tags: bouyer-ide-base
# 1.122 03-Oct-1998 fvdl

The linux compat i386 "files" file moved into arch/


# 1.121 01-Oct-1998 erh

linux_machdep.c has been moved. It is now included from compat/linux/i386/files.linux_i386.


# 1.120 12-Sep-1998 mycroft

Fix thinko in previous.


# 1.119 13-Aug-1998 rvb

Include db_dbgregs.s for ddb


# 1.118 13-Aug-1998 rvb

Make serial line debugging easier to enable and use


# 1.117 31-Jul-1998 thorpej

Don't include files.isapnp here.


Revision tags: eeh-paddr_t-base
# 1.116 12-Jul-1998 augustss

branches: 1.116.2;
Add USB support. Supported so far:
* UHCI and OHCI host controllers on PCI
* Hubs
* HID devices withe special drivers for mouse and keyboard
* Printers


# 1.115 26-Jun-1998 cgd

add device declarations for 'puc'-related devices. Add lpt attaching
to puc to the files file, because it can't go in files.pci (see comments
here or there).


# 1.114 07-Jun-1998 sommerfe

Add ISA Plug and Play attachment for PCIC PCMCIA controller (pcic* at isapnp?).
Slightly modify ISA attachment to let the two share code.


# 1.113 16-Apr-1998 drochner

branches: 1.113.2;
add a device node for "sysbeep at pcppi"


# 1.112 15-Apr-1998 drochner

VGA and spkr are now MI.


# 1.111 22-Mar-1998 drochner

allow use of new wscons code:
-rename the "pckbd" internal attribute to pckbcport, it conflicts with the
real pckbd device in dev/pckbc
-add attachments of pccons and pms to the new mi keyboard controller
driver (more or less for testing)
-include the new "files.wscons" and "files.pckbc"
-add declarations for VGA - must be done here for now to avoid conflicts
with alpha's private VGA driver


# 1.110 04-Mar-1998 cgd

add file declarations for MD pciide file.
add (temporary) device/file declarations for the MI PCI IDE controller
driver. These are present here until the wdc declaration mess is
resolved, because until then they need to go into MD files files in
places where they play nice with the wdc declaration.


# 1.109 22-Feb-1998 mycroft

Nuke random.s.


# 1.108 16-Feb-1998 thorpej

Remove "class" declarations, and add "devclass" declarations where
appropriate. Fix several inconsistencies between device class and
attributes. Mostly from Chris Demetriou.


# 1.107 06-Feb-1998 thorpej

Add pceb at pci and {eisa,isa} at pceb attachments.


# 1.106 06-Feb-1998 mrg

add the i386 MD portions for UVM.


# 1.105 22-Jan-1998 thorpej

Generate dependenices on the XSERVER option.


# 1.104 22-Jan-1998 thorpej

Generate dependencies on the DUMMY_NOPS option.


# 1.103 22-Jan-1998 thorpej

Generate dependencies on the USER_LDT option.


# 1.102 21-Jan-1998 thorpej

Generate dependencies on the MATH_EMULATE option.


# 1.101 15-Jan-1998 thorpej

Generate dependencies on the VM86 option.


# 1.100 15-Jan-1998 thorpej

Generate dependencies on the CPU type options (I386_CPU, I486_CPU, ...)


# 1.99 15-Jan-1998 thorpej

Oops, something snuck in there that shouldn't have...


# 1.98 15-Jan-1998 thorpej

Get include file paths correct.


# 1.97 14-Jan-1998 cgd

Shuffle wd/wdc driver files around (via repository copies). wdc
now lives in dev/ic, wd now lives in dev/ata. there's now a 'ata'
interface attribute defined in conf/files, but wdc can't go there
yet because some ports still use private versions based on the old
ISA version.


# 1.96 12-Jan-1998 thorpej

Update for changes to config.


# 1.95 27-Nov-1997 fvdl

Revert I486_PCI_MEM_ENABLED change, it caused too many problems.


# 1.94 24-Nov-1997 thorpej

defopt I486_PCI_MEM_ENABLED


# 1.93 29-Oct-1997 thorpej

Defopt PCIC_ISA_ALLOC_IOBASE, PCIC_ISA_ALLOC_IOSIZE, and
PCIC_ISA_INTR_ALLOC_MASK.


Revision tags: netbsd-1-3-base
# 1.92 20-Oct-1997 thorpej

branches: 1.92.2;
Update for new location of i82365.c


# 1.91 17-Oct-1997 bouyer

Add mii.


# 1.90 16-Oct-1997 thorpej

Pull marc-pcmcia branch down from trunk.


Revision tags: marc-pcmcia-base
# 1.89 14-Oct-1997 jtk

add bioscall attribute and bioscall.s/apmcall.s files


# 1.88 11-Sep-1997 mycroft

Add an ibcs2_setregs().


Revision tags: thorpej-signal-base
# 1.87 27-Aug-1997 bouyer

Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.


# 1.86 23-Aug-1997 drochner

Remove unneeded dev/cninit.c.


Revision tags: marc-pcmcia-bp
# 1.85 06-Jul-1997 thorpej

branches: 1.85.2;
Add new DDB and KGDB files.


# 1.84 13-May-1997 jtk

branches: 1.84.2;
add pcibus attribute to pchb, for Intel dual-bus host/PCI bridge chip


# 1.83 24-Apr-1997 mycroft

GC.


# 1.82 04-Apr-1997 augustss

Include OSS audio emulation.


Revision tags: is-newarp-before-merge is-newarp-base
# 1.81 21-Jan-1997 thorpej

"md" is declared in sys/conf/files, now.


# 1.80 16-Jan-1997 christos

- add the Plug and Play glue
- make the joystick driver use it.


# 1.79 28-Dec-1996 pk

branches: 1.79.2;
rename: ramdisk => md


# 1.78 28-Nov-1996 thorpej

Update for pchb and pcib drivers.


# 1.77 25-Aug-1996 jtk

add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)


# 1.76 05-Aug-1996 soda

adding AHA-284x VL front-end to ahc driver by Jason Thorpe.


# 1.75 09-Jul-1996 mycroft

Oops; remove something that shouldn't be here.


# 1.74 03-Jul-1996 mycroft

Translate in_cksum() to assembler, and speed it up a bit.


Revision tags: netbsd-1-2-BETA netbsd-1-2-base
# 1.73 07-May-1996 thorpej

branches: 1.73.4;
Make the MI LANCE driver standalone, and use cfattach to resolve
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.


# 1.72 09-Apr-1996 cgd

there's now a eisa_machdep.c which must be included when including
EISA support.


# 1.71 27-Mar-1996 perry

add joystick driver from Matthieu Herrb (pr #2267)


# 1.70 27-Mar-1996 cgd

modify these to provide a new, better-specified PCI interface
(soon to be documented on mailing lists; eventually in section 9 manual
pages), most importantly:
(1) support interrupt pin swizzling on non-i386 systems with
PCI-PCI bridges (per PPB spec; done, but meaningless, on i386).
(2) provide pci_{io,mem}_find(), to determine what I/O or memory
space is described by a given PCI configuration space
mapping register.
(3) provide pci_intr_map(), pci_intr_string(), and
pci_intr_{,dis}establish() to manipulate and print info about
PCI interrupts.
(4) deprecate the pci_map_* functions, and provide them only
as compatibility interfaces (in pci_compat.c) which will
eventually go away, implemented as wrappers around
the functions described above.
(5) make pci functions take as an argument a machine-dependent
cookie, to allow more flexibility in implementation.


# 1.69 25-Mar-1996 perry

Added support for rd (ramdisk) pseudodevice, needed for new install system.


# 1.68 18-Mar-1996 jtk

attach the speaker device to pckbd (it falls in the I/O range of the
keyboard/console device cluster)


# 1.67 17-Mar-1996 thorpej

New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.


# 1.66 16-Mar-1996 thorpej

Change the PS/2 mouse driver to be a child of the "pckbd" attribute,
which represents the "keyboard controller". Give "pc" and "vt" drivers
the "pckbd" attribute. In pcattach() (pccons and pcvt), attach children
of the keyboard controller.


# 1.65 04-Mar-1996 cgd

Attach isa, eisa, and pci to mainbus now, rather than root. The i386
now has a single device tree (rather than a forest). Also, attach
EISA only if it's present, and attach in order: PCI, EISA, ISA (most
specific to least specific).


# 1.64 28-Feb-1996 cgd

update for adjustments to ISA and PCI 'files' files


# 1.63 27-Feb-1996 cgd

Trim some comments relating to EISA configuration that are no longer relevant.


# 1.62 22-Feb-1996 scottr

Move the speaker driver to 'new' config. (Closes PR 1361, from Rafal Boni)


# 1.61 08-Jan-1996 mycroft

VM86 support, by John Kohl, touched up a bit by me.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.60 11-Oct-1995 mycroft

Various changes from John Kohl and me:
Map kernel stacks only at unique addresses.
Use one TSS per process.
Add sysarch calls for modifying IOPL and the I/O permission bitmap.
Add a compacting GDT entry allocator, for TSS and LDT selectors.
Enable modifying %fs and %gs with PT_SETREGS.
Sanitize various bits of code.


# 1.59 10-Oct-1995 mycroft

Minor change.


# 1.58 10-Oct-1995 mycroft

FreeBSD binary compatibility module, from Noriyuki Soda.


# 1.57 27-Jul-1995 mycroft

le can also be on PCI.


# 1.56 28-Apr-1995 cgd

rename files files for new config/config.old naming


Revision tags: before_newconf_base
# 1.55 03-Nov-1994 mycroft

Relocate aha1742.c, in preparation for other changes.


# 1.54 27-Oct-1994 cgd

new RCS ID format.


# 1.53 24-Oct-1994 deraadt

new from christos


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE
# 1.52 23-Aug-1994 deraadt

branches: 1.52.2;
add `eg' driver for the 3c505 by <dean@fsa.ca>


# 1.51 15-Aug-1994 mycroft

Add iBCS2 files.


# 1.50 09-Aug-1994 mycroft

Add NCR and PCI files.


# 1.49 07-Aug-1994 mycroft

Add rtfps.


Revision tags: netbsd-1-0-base
# 1.48 01-Jul-1994 mycroft

branches: 1.48.2;
is0 --> le0, and give trinity one.


# 1.47 24-May-1994 deraadt

need conf.c


# 1.46 22-May-1994 deraadt

prelim svr4 stuff from <christos@deshaw.com>


# 1.45 05-May-1994 cgd

if_hp won't compile, but it'd need a counter include, if it were to...


# 1.44 24-Apr-1994 mycroft

Add aic6360.c.


# 1.43 22-Apr-1994 mycroft

Add dma.c and seagate.c.


# 1.42 07-Apr-1994 mycroft

Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.


# 1.41 29-Mar-1994 mycroft

Update for new SCSI code, and we don't need counts on some of these files
any more.


# 1.40 23-Mar-1994 cgd

add line for 'ast' mp-com driver. needs to go into fils.newconf eventually


# 1.39 12-Mar-1994 cgd

garbage collect, and slight line-spacing change


# 1.38 01-Mar-1994 hpeyerl

add if_el driver.


# 1.37 18-Feb-1994 mycroft

Update for new lpt.


# 1.36 17-Feb-1994 hpeyerl

Add an "or". Thanx to Christos Zoulas <christos@deshaw.com>


# 1.35 16-Feb-1994 mycroft

Add elink.c.


# 1.34 02-Feb-1994 hpeyerl

Multicast is no longer optional.


# 1.33 01-Feb-1994 cgd

make dev/cons.c standard


# 1.32 29-Jan-1994 cgd

put the console configuration in the 'right' place


# 1.31 28-Jan-1994 glass

ne driver has been removed.


# 1.30 27-Jan-1994 cgd

add consconf.c, as standard


# 1.29 25-Jan-1994 hpeyerl

make ec and we go away ....


# 1.28 09-Jan-1994 cgd

add entries for the 'audio' pseudo-dev and for the new soundblaster driver


# 1.27 08-Jan-1994 cgd

code reorg


# 1.26 22-Dec-1993 cgd

alphabetize... again


# 1.25 10-Dec-1993 hpeyerl

Add random.s for multicast stuff.


# 1.24 03-Dec-1993 deraadt

add ep driver


# 1.23 04-Nov-1993 cgd

add mcd: Mitsumi CD driver by Holger Veit and Brian Moore


# 1.22 06-Oct-1993 andrew

Added entry for Cyclades Cyclom-{4/8/16}Y multiport async serial board
driver.


Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.21 04-Jul-1993 cgd

move julian's scsi files back into files.i386


# 1.20 03-Jul-1993 cgd

add support for David Greenman's "ed" driver.


# 1.19 14-Jun-1993 mycroft

Add entry for pms.


# 1.18 14-Jun-1993 andrew

Renamed Microsoft busmouse driver from bms -> mms


# 1.17 13-Jun-1993 andrew

Added microsoft and logitech isa busmice.


# 1.16 06-Jun-1993 cgd

cleanup, add DDB to dist. floppy kernels, and get rid of f*@#ing "as"


# 1.15 22-May-1993 cgd

add rcsids to everything and clean up headers


# 1.14 21-May-1993 cgd

make tabbing sane


# 1.13 20-May-1993 deraadt

First cut at cpu independent disklabels.
There will be niggly little details no doubt..


# 1.12 20-May-1993 cgd

update config files for correct "cpu" usage


# 1.11 18-May-1993 cgd

changes for 'arch'


# 1.10 07-May-1993 cgd

fix typo on if_ix line, and add rcs id


# 1.9 07-May-1993 cgd

add entries for dcfclock, ix ethernet, and speaker


# 1.8 29-Apr-1993 cgd

make sure you can't include ahb or bt when you've got an aha


# 1.7 17-Apr-1993 mycroft

Add entry for HP ethernet driver.


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.6 10-Apr-1993 glass

fixed to be compliant, subservient, and to take advantage of the newly
hacked config(8)
ALL config file should gradually get all the configurable options,drivers,etc


# 1.5 08-Apr-1993 cgd

put scsi system file list in the right place (finally)


# 1.4 06-Apr-1993 deraadt

wd7000 entry


# 1.3 23-Mar-1993 cgd

added support for microtime routines by Steve McCanne (mccanne@ee.lbl.gov)


Revision tags: patchkit-0-2-2
# 1.2 21-Mar-1993 cgd

after 0.2.2 "stable" patches applied


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision