Commit Graph

3915 Commits

Author SHA1 Message Date
Ruslan Ermilov
817b59bff6 Reduce the number of knobs controlling the build of debug modules
to one, DEBUG_FLAGS, which is also compatible with <bsd.prog.mk>.
Previously one had to set both DEBUG and DEBUG_FLAGS to build the
.ko.debug with debugging symbols which was boring when doing this
manually.
2004-02-13 10:40:54 +00:00
Ruslan Ermilov
4c293d355f We didn't strip debugging symbols from .ko if DEBUG was undefined. 2004-02-13 09:39:45 +00:00
Peter Grehan
321fd46031 Work-in-progress for the 'Kauai' ATA device in Mac notebooks. The
device seems to be the macio ATA cell with a PCI front-end, and
has no relation to PIIX-style ATA/PCI devices.
2004-02-12 09:17:16 +00:00
Tim J. Robbins
28c013fd72 Un-reserve major 144 (nsmb) now that we are using automatic allocation. 2004-02-11 12:58:06 +00:00
Bruce M Simpson
1cfd4b5326 Initial import of RFC 2385 (TCP-MD5) digest support.
This is the first of two commits; bringing in the kernel support first.
This can be enabled by compiling a kernel with options TCP_SIGNATURE
and FAST_IPSEC.

For the uninitiated, this is a TCP option which provides for a means of
authenticating TCP sessions which came into being before IPSEC. It is
still relevant today, however, as it is used by many commercial router
vendors, particularly with BGP, and as such has become a requirement for
interconnect at many major Internet points of presence.

Several parts of the TCP and IP headers, including the segment payload,
are digested with MD5, including a shared secret. The PF_KEY interface
is used to manage the secrets using security associations in the SADB.

There is a limitation here in that as there is no way to map a TCP flow
per-port back to an SPI without polluting tcpcb or using the SPD; the
code to do the latter is unstable at this time. Therefore this code only
supports per-host keying granularity.

Whilst FAST_IPSEC is mutually exclusive with KAME IPSEC (and thus IPv6),
TCP_SIGNATURE applies only to IPv4. For the vast majority of prospective
users of this feature, this will not pose any problem.

This implementation is output-only; that is, the option is honoured when
responding to a host initiating a TCP session, but no effort is made
[yet] to authenticate inbound traffic. This is, however, sufficient to
interwork with Cisco equipment.

Tested with a Cisco 2501 running IOS 12.0(27), and Quagga 0.96.4 with
local patches. Patches for tcpdump to validate TCP-MD5 sessions are also
available from me upon request.

Sponsored by:	sentex.net
2004-02-11 04:26:04 +00:00
Scott Long
777a986004 Allow amr(4) to get a dynamic major number instead of a static one.
Submitted by:	Andre Guibert de Bruet
2004-02-08 16:07:22 +00:00
Peter Wemm
4e37bb8f5d Reduce the inline limit from 20000 to 8000 after the previous changes
to simplify the curthread expansion some months ago.
2004-02-06 20:40:04 +00:00
Peter Wemm
0ec876a2f0 Attempt to clean up the emu10k1-alsa.h stuff so that config doesn't
delete it each time its run and have it regenerated each time by make.
I used a quick hackish script rather than putting it in the files file
and used the before-depend rule to avoid the depend/no-depend hacks.
2004-02-05 22:51:16 +00:00
Peter Wemm
db41012cc3 Add crypto implemenation files (C versions (like alpha, unlike i386)) 2004-02-05 01:09:29 +00:00
Paul Saab
65fd52fc8b Reserve 187 (twa) for the new 3ware ATA RAID controller. 2004-02-02 20:00:56 +00:00
Takeshi Shibagaki
386a89ed83 Compiled longrun.c when defined options CPU_ENABLE_LONGRUN,
and fixed wrong comparation in cpu vendor. Longrun function
was re-enabled.
2004-01-31 20:14:44 +00:00
Ken Smith
4a98f6820b Fix pathname so 'make tags' in a kernel build directory looks in
the right place for the $MACHINE/include directory.

Approved by:	rwatson (mentor)
2004-01-29 14:58:22 +00:00
Peter Grehan
db55e39aa1 Implement UMA_MD_SMALL_ALLOC, since the BAT registers allow direct
addressing of memory. Makes a substantial improvement for apps that
stress the limited amount of KVM on PPC (e.g. untarring the ports tree).

uma_machdep.c stolen from amd64/ia64.
2004-01-29 00:32:22 +00:00
Alex Dupre
ce7e8baded Add missing 'device ataraid' to support ATA software RAID.
Noticed by:	Dario Freni <saturnero@gufi.org>
Approved by:	blackend (mentor)
Reviewed by:	sos
2004-01-26 16:38:33 +00:00
Yoshihiro Takahashi
9c9fcfa30d Fixed some style bugs. 2004-01-26 12:28:40 +00:00
Bruce Evans
bad83add95 Fixed some style bugs (insertion sort errors, tab lossage, and ornation
of EOF).
2004-01-25 15:27:23 +00:00
Dag-Erling Smørgrav
f5e307118e Remove trailing whitespace. 2004-01-25 12:32:56 +00:00
Dag-Erling Smørgrav
dc171447b6 Replace description of the mutex profiling code with a reference to
the newly committed manual page.
2004-01-25 12:31:59 +00:00
Maxim Sobolev
1fbb6abce0 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
2004-01-25 09:59:15 +00:00
Jeff Roberson
b998bd92e3 - Compile 4BSD in LINT since ULE will be tested by GENERIC kernel builds.
- Fix the formatting on the ULE options line, I didn't notice that a space
   was used normally.

Reported by:	bde
2004-01-25 07:47:57 +00:00
Jeff Roberson
8a0402a4b8 - ULE is not exactly experimental anymore. Change some comments and enable
it in LINT.
2004-01-24 21:32:53 +00:00
Philip Paeps
e609fbdbc7 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)
2004-01-23 20:30:52 +00:00
Ruslan Ermilov
95d9bfd8d6 Only enforce -fno-strict-aliasing for optimization levels that
imply -fstrict-aliasing.

Reviewed by:	bde
2004-01-22 10:01:47 +00:00
Ruslan Ermilov
c7301f9132 The gdbinit.${MACHINE_ARCH} script may not exist. 2004-01-21 08:23:46 +00:00
Peter Grehan
e723eedf01 Add required GFB options as well as one for ofw/syscons. 2004-01-21 05:20:58 +00:00
Peter Grehan
473795dcdf Add syscons files, and also generate a syscons font since Apple
SVGA adapters don't have one available in their ROMs.
2004-01-21 05:19:59 +00:00
David E. O'Brien
556c5b97ea Fix sort misordering. 2004-01-20 04:37:07 +00:00
Maxim Sobolev
e7846ad79e 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
2004-01-18 21:06:56 +00:00
Atsushi Onoe
d148e81e76 Use generic net80211 framework for awi driver.
Restore awi to be workable again; it was broken..
XXX: The initialization is still unreliable yet, it sometimes fails on
     some card.
2004-01-15 10:04:21 +00:00
Peter Grehan
f8735aa3bd - add openpic macio and psim/iobus attachments
- alpha sort powermac files
2004-01-15 08:43:46 +00:00
Yoshihiro Takahashi
2a9e935823 MFi386: revision 1.462 2004-01-14 15:11:08 +00:00
Dag-Erling Smørgrav
7f3155aab1 Re-add libkern/ffs.c. I thought sparc64 had an inline version, but
failed to notice that it's #if 0'ed out.
2004-01-14 08:38:13 +00:00
Dag-Erling Smørgrav
82ec4f6ea9 Forgot ffsl() and flsl() on alpha. 2004-01-13 18:05:49 +00:00
Dag-Erling Smørgrav
1de30b60cb Add ffsl(), fls() flsl() to platforms that don't already have them. 2004-01-13 15:37:23 +00:00
David E. O'Brien
4239793589 Add emu10k1-alsa%diked.h dependancies. 2004-01-12 19:02:37 +00:00
Nate Lawson
4fd3a4fdd2 Add the ACPI Toshiba extras driver (hotkeys, LCD backlight, video output,
forced fan control, and CPU throttling).

Submitted by:	Hiroyuki Aizu <aizu@navi.org>
2004-01-11 19:18:38 +00:00
Ruslan Ermilov
9c855145a8 Stay in sync with src/COPYRIGHT and src/sys/sys/copyright.h,
and put the starting year of the project into the copyright.
2004-01-11 14:13:29 +00:00
Robert Watson
c370f01276 Release audit device major number reservation. The new audit
implementation writes directly to a file, similar to the Darwin,
Solaris, and whoever else implementations, rather than buffering
through a pseudo-device.
2004-01-11 06:24:34 +00:00
Ruslan Ermilov
6c3d1bdfa3 Properly fix the FreeBSD copyright.
Pointed by:	scottl
2004-01-10 16:24:22 +00:00
Ruslan Ermilov
ab8de8b9d7 s/FreeBSD Inc./The FreeBSD Foundation/g 2004-01-10 15:38:47 +00:00
Bill Paul
8d1da39d69 Add the NDISAPI option. 2004-01-08 17:13:10 +00:00
John Baldwin
b277f64b8b Remove the AUTO_EOI_2 option for PC-98 as it has never done anything anyway
and was even commented out in NOTES.
2004-01-06 18:51:14 +00:00
Warner Losh
e342346255 Define KERNBUILDDIR again. The RELENG_5_2 tree is stable enough that
we can turn this back on to start to resolve the issues with the
release process.

Approved by: scottl
2004-01-03 19:03:28 +00:00
Bruce Evans
2c737393a1 Backed out a small part of rev.1.15. -Winline now works better, so
there is no need turn it off when compiling with -finstrument-functions.

Having -Winline turned off mainly broke checking for bogus inlines in
kernels configured with high resolution profiling, e.g., LINT.  Not
turning it off unbreaks the warnings for bogus inlines in istallion.c,
but at least the i386 LINT still builds because istallion.c is compiled
without -Werror due to other bugs in it.
2003-12-30 09:01:29 +00:00
Bruce Evans
77c854b056 Backed out rev.1.48. -Winline now works better so there should be no
need for a hack to prevent bogus warnings about unused inlines.
2003-12-30 07:54:39 +00:00
Bruce Evans
42033f49c1 Garbage-collected CLK_USE_TSC_CALIBRATION.
i386/conf/NOTES, pc98/conf/NOTES:
Fixed the descriptions of the other CLK_* options.
2003-12-30 07:28:54 +00:00
Bruce Evans
e1402a88c6 Garbage-collected some vestiges of objformat support (mainly ${FMT}). 2003-12-29 11:34:33 +00:00
Bruce Evans
c52c3a23e9 Fixed some style bugs (manly a few English usage errors in comments and
many unusual indentations for continued lines in code).
2003-12-29 11:28:21 +00:00
Greg Lehey
01b4ca63ec gdbinit target: Remove comment lines from dot.gdbinit. This allows us to
put dire warnings in the original and not find them in the installed version.
2003-12-29 06:40:00 +00:00
Ruslan Ermilov
e0dd77fdd7 Don't add CWARNFLAGS to CFLAGS here, they were already added by bsd.sys.mk. 2003-12-25 14:07:52 +00:00
Bruce M Simpson
37621fd5d9 Push m_apply() and m_getptr() up into the colleciton of standard mbuf
routines, and purge them from opencrypto.

Reviewed by:	sam
Obtained from:	NetBSD
Sponsored by:	spc.org
2003-12-15 21:49:41 +00:00
Poul-Henning Kamp
0a93720637 Fix a locking problem with MD_ROOT_SIZE.
Retire md(4)'s static major number.
2003-12-13 18:12:58 +00:00
Bill Paul
c854fc1092 Commit the first cut of Project Evil, also known as the NDISulator.
Yes, it's what you think it is. Yes, you should run away now.

This is a special compatibility module for allowing Windows NDIS
miniport network drivers to be used with FreeBSD/x86. This provides
_binary_ NDIS compatibility (not source): you can run NDIS driver
code, but you can't build it. There are three main parts:

sys/compat/ndis: the NDIS compat API, which provides binary
compatibility functions for many routines in NDIS.SYS, HAL.dll
and ntoskrnl.exe in Windows (these are the three modules that
most NDIS miniport drivers use). The compat module also contains
a small PE relocator/dynalinker which relocates the Windows .SYS
image and then patches in our native routines.

sys/dev/if_ndis: the if_ndis driver wrapper. This module makes
use of the ndis compat API and can be compiled with a specially
prepared binary image file (ndis_driver_data.h) containing the
Windows .SYS image and registry key information parsed out of the
accompanying .INF file. Once if_ndis.ko is built, it can be loaded
and unloaded just like a native FreeBSD kenrel module.

usr.sbin/ndiscvt: a special utility that converts foo.sys and foo.inf
into an ndis_driver_data.h file that can be compiled into if_ndis.o.
Contains an .inf file parser graciously provided by Matt Dodd (and
mercilessly hacked upon by me) that strips out device ID info and
registry key info from a .INF file and packages it up with a binary
image array. The ndiscvt(8) utility also does some manipulation of
the segments within the .sys file to make life easier for the kernel
loader. (Doing the manipulation here saves the kernel code from having
to move things around later, which would waste memory.)

ndiscvt is only built for the i386 arch. Only files.i386 has been
updated, and none of this is turned on in GENERIC. It should probably
work on pc98. I have no idea about amd64 or ia64 at this point.

This is still a work in progress. I estimate it's about %85 done, but
I want it under CVS control so I can track subsequent changes. It has
been tested with exactly three drivers: the LinkSys LNE100TX v4 driver
(Lne100v4.sys), the sample Intel 82559 driver from the Windows DDK
(e100bex.sys) and the Broadcom BCM43xx wireless driver (bcmwl5.sys). It
still needs to have a net80211 stuff added to it. To use it, you would
do something like this:

# cd /sys/modules/ndis
# make; make load
# cd /sys/modules/if_ndis
# ndiscvt -i /path/to/foo.inf -s /path/to/foo.sys -o ndis_driver_data.h
# make; make load
# sysctl -a | grep ndis

All registry keys are mapped to sysctl nodes. Sometimes drivers refer
to registry keys that aren't mentioned in foo.inf. If this happens,
the NDIS API module creates sysctl nodes for these keys on the fly so
you can tweak them.

An example usage of the Broadcom wireless driver would be:

# sysctl hw.ndis0.EnableAutoConnect=1
# sysctl hw.ndis0.SSID="MY_SSID"
# sysctl hw.ndis0.NetworkType=0 (0 for bss, 1 for adhoc)
# ifconfig ndis0 <my ipaddr> netmask 0xffffff00 up

Things to be done:

- get rid of debug messages
- add in ndis80211 support
- defer transmissions until after a status update with
  NDIS_STATUS_CONNECTED occurs
- Create smarter lookaside list support
- Split off if_ndis_pci.c and if_ndis_pccard.c attachments
- Make sure PCMCIA support works
- Fix ndiscvt to properly parse PCMCIA device IDs from INF files
- write ndisapi.9 man page
2003-12-11 22:34:37 +00:00
Peter Wemm
f11e46c5ed Move the ia32_sigtramp.S file back under amd64/. This interfaces closely
with the sendsig code in the MD area.  It is not safe to assume that all
the register conventions will be the same.  Also, the way of producing
32 bit code (.code32 directives) in this file is amd64 specific.
2003-12-11 01:09:51 +00:00
Peter Wemm
64d85faa1c Assimilate ia64 back into the fold with the common freebsd32/ia32 code.
The split-up code is derived from the ia64 code originally.

Note that I have only compile-tested this, not actually run-tested it.
The ia64 side of the force is missing some significant chunks of signal
delivery code.
2003-12-11 01:05:09 +00:00
Peter Wemm
419d43c635 Use gcc's superior ffs() builtin. 2003-12-10 22:51:40 +00:00
John Baldwin
d9feb22dbe The DEV_ACPI option is no longer used, so g/c it. 2003-12-10 19:30:42 +00:00
Andrew Gallatin
721bdb8d39 Remove duplicate script for locore.o 2003-12-09 15:48:20 +00:00
David E. O'Brien
813dd1729c Add PowerPC CFLAGS.
Submitted by:	gallatin
2003-12-07 09:56:30 +00:00
Warner Losh
65b4a1b917 Remote meteor driver. It hasn't compiled in over 3 years. If someone
makes it compile again, and can test it, we can restore the driver to
the tree.
2003-12-07 04:41:11 +00:00
Warner Losh
1da8b3b984 Now that we have the en(4) driver, we no longer need the hea driver.
Approved by: harti@
2003-12-07 04:27:08 +00:00
Warner Losh
6ee2f106aa The dgb driver is redundant with the digi driver in the tree. It uses
lots of old interfaces, and digi now supports all cards that dgb
supported.  The author of the driver says that this is no longer
necessary.

Approved by: babkin@
2003-12-07 04:18:52 +00:00
Warner Losh
29b4184577 Continue to remove drivers that don't compile and haven't compiled in
a long time: lmc The LAN Media Corp PCI WAN driver based on tulip.
This driver hasn't compiled for 3 years since the PCI compat shims
were removed, and Lan Media appears to have gone out of business.
These cards appear to be rare (a recent search of ebay had no hits).

Should someone wish to revive this driver, submitting patches to make
it compile plus a testing report will bring it back.
2003-12-07 04:05:19 +00:00
Scott Long
721f3631fb HEAD is at 5.2-CURRENT now 2003-12-07 03:56:12 +00:00
Warner Losh
6631471980 First part of the removal of drivers for hardware that isn't relevant
or whose drivers haven't even compiled for years.

The loran hardware was very unique, and only a few copies of it ever
existed.  It used the old COMPAT_ISA_DRIVER and when the author was
contacted, he indicated that he had no intention of ever updating this
driver and it was no longer relevant to the FreeBSD world and can be
removed without impact to anybody.

Approved by: phk
2003-12-07 03:51:19 +00:00
Warner Losh
ac44076d62 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>
2003-12-03 23:06:30 +00:00
Warner Losh
c786876b1c There is no such thing as a pc98 machine with ISA expansion slots, nor
is there a C-BUS Cronyx Sigma board.  Remove it from pc98 files and lint.

Approved by: re <scottl>
2003-12-03 21:44:44 +00:00
John Baldwin
45c1c90f6a Export a few SMP related symbols in UP kernels as well. This is needed to
aid other kernel code, especially code which can be in a module such as
the acpi_cpu(4) driver, to work properly with both SMP and UP kernels.
The exported symbols include mp_ncpus, all_cpus, mp_maxid, smp_started, and
the smp_rendezvous() function.  This also means that CPU_ABSENT() is now
always implemented the same on all kernels.

Approved by:	re (scottl)
2003-12-03 14:55:31 +00:00
Poul-Henning Kamp
211e680918 Align the .ctors section correctly.
This fixes the 75% probable panic when using basic block profiling.

Approved by:	re@
2003-12-03 07:40:03 +00:00
Warner Losh
cba6cccff8 Major 186 for sx driver (for Specialix I/O8+) by frank@exit.com 2003-12-02 04:40:33 +00:00
Poul-Henning Kamp
90bc0f9dcd Rename the ELAN_* options to CPU_ELAN_* according the the brucification.
This commit was forgotten a few days ago.

Approved by:	re@
2003-12-01 20:39:04 +00:00
Warner Losh
54e1080557 Turns out that building modules with the kernel opt files is
uncovering some interesting problems.  Be conservative and effecitvely
disable this by default.  Interested parties may still define
KERNBUILDDIR by hand to achive the same effect.

I plan on referting this change after 5.2 is released, or sooner if
the issues with building releases are resolved and re@ approves.

Approved by: re@ (scottl, marcel)
2003-11-25 04:12:43 +00:00
Scott Long
8a5e5597c0 Move us into 5.2-BETA 2003-11-22 06:04:12 +00:00
Warner Losh
0a5839339d New major number:
185 ce Cronyx Tau-32 E1 adapter <rik@cronyx.ru>

(likely unneeded for current, but required for older versions of FreeBSD).

Approved by: re@ (scottl)
2003-11-21 21:03:42 +00:00
Andre Oppermann
97d8d152c2 Introduce tcp_hostcache and remove the tcp specific metrics from
the routing table.  Move all usage and references in the tcp stack
from the routing table metrics to the tcp hostcache.

It caches measured parameters of past tcp sessions to provide better
initial start values for following connections from or to the same
source or destination.  Depending on the network parameters to/from
the remote host this can lead to significant speedups for new tcp
connections after the first one because they inherit and shortcut
the learning curve.

tcp_hostcache is designed for multiple concurrent access in SMP
environments with high contention and is hash indexed by remote
ip address.

It removes significant locking requirements from the tcp stack with
regard to the routing table.

Reviewed by:	sam (mentor), bms
Reviewed by:	-net, -current, core@kame.net (IPv6 parts)
Approved by:	re (scottl)
2003-11-20 20:07:39 +00:00
Warner Losh
3193579b66 o Remove @- from the ln and change it to a -sf. This was bogus, and
regocnized as such at the time.  Now that the other bogons in the
  tree have been fixed, we can remove this ugly kludge.
o Remove stale/bogus opt_foo.h files.  These are left over from
  by-gone resources.  And they point to the need, yet again, to
  improve the build system so meta information is only in one place.

Submitted by: ru
Reviewed by: bde
Approved by: re@ (jhb)
2003-11-19 05:08:27 +00:00
Peter Wemm
0d2a298904 Initial landing of SMP support for FreeBSD/amd64.
- This is heavily derived from John Baldwin's apic/pci cleanup on i386.
- I have completely rewritten or drastically cleaned up some other parts.
  (in particular, bootstrap)
- This is still a WIP.  It seems that there are some highly bogus bioses
  on nVidia nForce3-150 boards.  I can't stress how broken these boards
  are.  I have a workaround in mind, but right now the Asus SK8N is broken.
  The Gigabyte K8NPro (nVidia based) is also mind-numbingly hosed.
- Most of my testing has been with SCHED_ULE.  SCHED_4BSD works.
- the apic and acpi components are 'standard'.
- If you have an nVidia nForce3-150 board, you are stuck with 'device
  atpic' in addition, because they somehow managed to forget to connect the
  8254 timer to the apic, even though its in the same silicon!  ARGH!
  This directly violates the ACPI spec.
2003-11-17 08:58:16 +00:00
Warner Losh
62d768efe6 Ignore errors on ln. This is a quick fix for the make depend twice in
a row being broken.  A better filx will come as soon as I have time to
analyse things more deeply.
2003-11-17 05:21:18 +00:00
Warner Losh
c33df8b251 Copy ukbdmap.h rules from .i386.
# maybe this should be in files.

# This may fix sparc64 tinderbox.  I'll kinow in a few hours.
2003-11-17 04:38:14 +00:00
Shunsuke Akiyama
565f53bbaa Make interrupt pipe interval time configurable.
- Add kernel options: {UPLCOM,UVSCOM}_INTR_INTERVAL
- Add sysctl variables: 'hw.usb.{uplcom,uvscom}.interval'

MFC after:	1 week
2003-11-16 12:26:10 +00:00
Brian Feldman
75504450a1 As mentioned by warner, previous revision (opt_ddb.h) was just a fluke --
I'm having bad luck with different parts of the sys tree being checked
out at slightly different times.  Back it out, noting it doesn't cause
harm in any case.  Tinderbox also makes these things more fun.
2003-11-16 08:10:59 +00:00
Brian Feldman
5e36d52bef It appears opt_global.h may cause opt_ddb.h to be needed. Adding it
with the full path on the command line like with -include opt_global.h
currently unbreaks tinderbox.
2003-11-16 07:50:14 +00:00
Warner Losh
6b1bb55958 Fix the building of null module. In the DIAGNOSTICS case, we include
opt_ddb.h.  These changes expand green's work of including
opt_global.h to prefer opt files in the kernel directory.  Further
refinement might be needed, but I think this is good.

Note: While this is a step on the path to moving the meta information
about modules into the config files, it doesn't actually do that.  It
just pulls in the opt files in a way that allows one to build
'generic' modules outside the tree.
2003-11-16 01:41:38 +00:00
Nate Lawson
6b74f9b7f5 Implement Cx CPU idle states and updated throttling support.
* Use the cpu_idle_hook() to do idling for C1-C3.
* Use both _CST and the FADT to detect Cx states.
* Use both _PTC and P_CNT for controlling throttling.
* Add a notify handler to detect changes in _CST and _PSS
* Call the _INI function for each processor if present.  This will be
  done by ACPI-CA in the future.
* Fix a bug on SMP systems where CPUs will attach multiple times if the
  bus is rescan.
* Document new sysctls for controlling idling.
2003-11-15 19:26:06 +00:00
Yoshihiro Takahashi
1ac37683a8 MFi386: revision 1.201. 2003-11-15 12:31:02 +00:00
Bruce Evans
9644b98770 Moved $FreeBSD$ to the beginning of the file.
Improved wording in a nearby comment.
2003-11-14 23:09:38 +00:00
Andre Oppermann
9188b4a169 Introduce ip_fastforward and remove ip_flow.
Short description of ip_fastforward:

 o adds full direct process-to-completion IPv4 forwarding code
 o handles ip fragmentation incl. hw support (ip_flow did not)
 o sends icmp needfrag to source if DF is set (ip_flow did not)
 o supports ipfw and ipfilter (ip_flow did not)
 o supports divert, ipfw fwd and ipfilter nat (ip_flow did not)
 o returns anything it can't handle back to normal ip_input

Enable with sysctl -w net.inet.ip.fastforwarding=1

Reviewed by:	sam (mentor)
2003-11-14 21:02:22 +00:00
Alfred Perlstein
1bf8720450 University of Michigan's Citi NFSv4 kernel client code.
Submitted by: Jim Rees <rees@umich.edu>
2003-11-14 20:54:10 +00:00
Brian Feldman
8fa793d0fe Include opt_global.h in the modules build, when building from a normal
kernel build.  This makes it possible for me not to get pissed off that
random.ko crashes the system trying to rdtsc() when the i386/cpu.h
support code decides it's okay to call that op when neither I386_CPU or
I486_CPU is defined.  I guess it also makes WITNESS/INVARIANTS defines
get picked up by the modules.
2003-11-14 16:04:11 +00:00
Hidetoshi Shimokawa
79acdabb11 Add sbp_targ(4). 2003-11-14 11:54:49 +00:00
Hajimu UMEMOTO
543729cf93 avoid module name conflict with opencrypto/rijndael.c.
Reported by:	tinderbox
2003-11-12 04:22:37 +00:00
Robert Watson
eca8a663d4 Modify the MAC Framework so that instead of embedding a (struct label)
in various kernel objects to represent security data, we embed a
(struct label *) pointer, which now references labels allocated using
a UMA zone (mac_label.c).  This allows the size and shape of struct
label to be varied without changing the size and shape of these kernel
objects, which become part of the frozen ABI with 5-STABLE.  This opens
the door for boot-time selection of the number of label slots, and hence
changes to the bound on the number of simultaneous labeled policies
at boot-time instead of compile-time.  This also makes it easier to
embed label references in new objects as required for locking/caching
with fine-grained network stack locking, such as inpcb structures.

This change also moves us further in the direction of hiding the
structure of kernel objects from MAC policy modules, not to mention
dramatically reducing the number of '&' symbols appearing in both the
MAC Framework and MAC policy modules, and improving readability.

While this results in minimal performance change with MAC enabled, it
will observably shrink the size of a number of critical kernel data
structures for the !MAC case, and should have a small (but measurable)
performance benefit (i.e., struct vnode, struct socket) do to memory
conservation and reduced cost of zeroing memory.

NOTE: Users of MAC must recompile their kernel and all MAC modules as a
result of this change.  Because this is an API change, third party
MAC modules will also need to be updated to make less use of the '&'
symbol.

Suggestions from:	bmilekic
Obtained from:		TrustedBSD Project
Sponsored by:		DARPA, Network Associates Laboratories
2003-11-12 03:14:31 +00:00
John Baldwin
961a7b244d Add an implementation of turnstiles and change the sleep mutex code to use
turnstiles to implement blocking isntead of implementing a thread queue
directly.  These turnstiles are somewhat similar to those used in Solaris 7
as described in Solaris Internals but are also different.

Turnstiles do not come out of a fixed-sized pool.  Rather, each thread is
assigned a turnstile when it is created that it frees when it is destroyed.
When a thread blocks on a lock, it donates its turnstile to that lock to
serve as queue of blocked threads.  The queue associated with a given lock
is found by a lookup in a simple hash table.  The turnstile itself is
protected by a lock associated with its entry in the hash table.  This
means that sched_lock is no longer needed to contest on a mutex.  Instead,
sched_lock is only used when manipulating run queues or thread priorities.
Turnstiles also implement priority propagation inherently.

Currently turnstiles only support mutexes.  Eventually, however, turnstiles
may grow two queue's to support a non-sleepable reader/writer lock
implementation.  For more details, see the comments in sys/turnstile.h and
kern/subr_turnstile.c.

The two primary advantages from the turnstile code include: 1) the size
of struct mutex shrinks by four pointers as it no longer stores the
thread queue linkages directly, and 2) less contention on sched_lock in
SMP systems including the ability for multiple CPUs to contend on different
locks simultaneously (not that this last detail is necessarily that much of
a big win).  Note that 1) means that this commit is a kernel ABI breaker,
so don't mix old modules with a new kernel and vice versa.

Tested on:	i386 SMP, sparc64 SMP, alpha SMP
2003-11-11 22:07:29 +00:00
Hajimu UMEMOTO
34d78ec3f1 cleanup rijndael API.
since there are naming conflicts with opencrypto, #define was
added to rename functions intend to avoid conflicts.

Obtained from:	KAME
2003-11-11 18:58:54 +00:00
John Baldwin
f9dbba5c4e 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.
2003-11-11 17:14:26 +00:00
Jake Burkholder
d2f154c95e Add a uart attachment/syscons keyboard driver for sun keyboards. In theory
this will work with any uart backend, currently supported hardware uses
either ns8250 or z8530.
2003-11-11 07:33:24 +00:00
Hajimu UMEMOTO
db54001806 enable aes-xcbc-mac and aes-ctr, again. 2003-11-10 10:39:14 +00:00
Peter Wemm
0432a0f961 Rename npx.c to fpu.c (it isn't an extension, its part of the core
architecture now).
2003-11-08 02:40:40 +00:00
Bruce Evans
dd7b5bb30b 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.
2003-11-07 15:14:53 +00:00
Hartmut Brandt
ed91f9a547 Allow the ng_uni node (NgATM signalling layer) to be built into the
kernel via options NGATM_UNI.
2003-11-07 09:18:53 +00:00
Bruce Evans
b75a04af23 Removed the garbage options DPT_ALLOW_MEMIO, HIFN_NO_RNG,
IPFIREWALL_FORWARD, NTIMECOUNTER, OHCI_DEBUG, UGEN_DEBUG, UHCI_DEBUG,
UHID_DEBUG, UHUB_DEBUG, UKBD_DEBUG, ULPT_DEBUG, UMASS_DEBUG, UMS_DEBUG,
URIO_DEBUG and VINUM_AUTOSTART.
2003-11-05 14:37:48 +00:00
Bruce Evans
1cee000cfc Removed references to the garbage (and soon to be deleted) options
DPT_ALLOW_MEMIO, IPFIREWALL_FORWARD and NTIMECOUNTER
2003-11-05 14:32:27 +00:00
Bruce Evans
250ebca656 Fixed misformatting of the options lines for CD9660_ICONV,
DA_OLD_QUIRKS, DCONS_BUF_SIZE, DCONS_FORCE_CONSOLE, DCONS_FORCE_GDB,
DCONS_POLL_HZ, DIRECTIO, HIFN_DEBUG, HIFN_RNDTEST, KSTACK_MAX_PAGES,
LIBMBPOOL, MBUF_STRESS_TEST, MSDOSFS_ICONV, NETGRAPH_ATM_ATMPIF,
NSWBUF_MIN, NTFS_ICONV, P1003_1B_SEMAPHORES, RAID_AUTOCONFIG,
SCHED_4BSD, SOCKBUF_DEBUG, UBSEC_DEBUG, UBSEC_RNDTEST, UDF_ICONV,
UVSCOM_DEFAULT_OPKTSIZE and WATCHDOG.
2003-11-05 12:52:35 +00:00
Bruce Evans
d00ce91973 Moved $FreeBSD$ to the beginning of the file.
Don't put the name of the file in a comment.  $FreeBSD$ gives more than
enough about the file's pathname.

Fixed misdescription of the file.  It isn't the whole unified Makefile...

Moved the settings of WERROR and of the standard extra CFLAGS
-finline-limit and -fno-strict-aliasing to a less wrong place.  They
were in the section for profiling.
2003-11-05 12:20:16 +00:00
Scott Long
126f0dfa3a Hook the udf_iconv module up to the kernel build.
Submitted by: imura@ryu16.org
2003-11-05 06:38:14 +00:00
Peter Wemm
5064105e52 Move the inline limit default variable to a per-arch place. For example,
the amd64 implementation of the pcpu macros is even more verbose than on
i386 and that causes gcc to way overestimate the complexity of this
2-instruction macro.  The other platforms can probably lower their
default values.
2003-11-04 23:29:17 +00:00
Yoshihiro Takahashi
1a16033398 MFi386: revision 1.456 2003-11-04 13:11:58 +00:00
Yoshihiro Takahashi
83f3d4e5e5 MFi386: revision 1.200 2003-11-04 12:19:54 +00:00
Brian Feldman
afdc68c42f Add a "-f" flag for asf(8) which performs a search to find the each module
no matter where in the directory structure it may be.  Use this and the "-k"
flag in the generated gdbinit files so that the "getsyms" function in gdb
requires no user intervention to run and will find every module if they're
in the kernel build's module directory.  This is still quite useful for
cases where gdb knows that the path for some modules is /boot/kernel and
others are in the object directory for /usr/src/sys/$ARCH/compile/kernel.

Approved by:	grog
2003-11-04 06:38:37 +00:00
John Baldwin
7058adba6c - Remove references to old interrupt and SMP code.
- Add entries for new interrupt and SMP code.
2003-11-03 22:46:43 +00:00
John Baldwin
a13b813801 - Remove APIC_IO option.
- Add NO_MIXED_MODE, DEV_ACPI, and DEV_APIC options.
2003-11-03 22:45:54 +00:00
Hartmut Brandt
ec7ceac96a Put address handling, traffic descriptor handling and message encoding
and decoding into the atmbase module when compiled directly into the kernel.
2003-11-03 12:05:58 +00:00
Poul-Henning Kamp
5843f50d9b Change /dev/soekris-errled to be /dev/led/error and make it conditional
on CPU_SOEKRIS.

Note the subtle change in semantfics for 'f%d' flash instruction and the
new morse facility (see details in dev/led/led.c)
2003-11-03 11:03:40 +00:00
Poul-Henning Kamp
1c66457ee5 Introduce new CPU_SOEKRIS option to tell soekris hardware from other
hardware based on similar chipsets.
2003-11-03 10:34:40 +00:00
Poul-Henning Kamp
8dd85c33e3 Free major#100 2003-11-03 10:19:33 +00:00
Nate Lawson
cc65a50cc5 Change the reset video option to be positive (hw.acpi.reset_video).
Requested by:	jhb

Initialize the real mode stack.  This is needed at least for the return
address from the lcall.
Requested by:	takawata

Fix style bugs in acpi_wakecode.S
Requested by:	bde

Remove the kernel option now that we have the tunable.
2003-11-01 00:18:29 +00:00
Yoshihiro Takahashi
19ec2ca3b5 MFi386: revision 1.198. 2003-10-31 13:50:09 +00:00
John Baldwin
555639e062 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.
2003-10-30 21:45:34 +00:00
Mitsuru IWASAKI
d63ab51a51 Alphabetical order for ACPI options broken by adding ACPI_NO_RESET_VIDEO.
Add short comment about ACPI_NO_RESET_VIDEO into NOTES.

Pointed-out by:	njl
2003-10-29 14:22:09 +00:00
Mitsuru IWASAKI
92781c3567 Add kernel option ACPI_NO_RESET_VIDEO as workaround for problems
(e.g. LCD white-out after resume) on some machine cased by
re-initialize video BIOS code in acpi_wakecode.
2003-10-29 03:30:45 +00:00
Sam Leffler
395bb18680 speedup stream socket recv handling by tracking the tail of
the mbuf chain instead of walking the list for each append

Submitted by:	ps/jayanth
Obtained from:	netbsd (jason thorpe)
2003-10-28 05:47:40 +00:00
Hartmut Brandt
027ebd2f39 Allow building the NgATM SAAL layer directly into the kernel. 2003-10-27 11:19:08 +00:00
Nate Lawson
eb4f7a817c Fix style problems with new options.
Requested by:	bde
2003-10-27 02:42:08 +00:00
Hidetoshi Shimokawa
ffbfc256fc Revert previous change.
We have to put dcons_crom at first after 'optional' and
dcons and firewire are necessary and not optional for dcons_crom anyway.

Reported by: brooks
2003-10-26 07:42:32 +00:00
Hidetoshi Shimokawa
b604f6e80f dcons_crom.c needs dcons and firewire. 2003-10-25 12:59:22 +00:00
Hidetoshi Shimokawa
869093b15d Add dumb console driver and related bits.
dcons(4): very simple console and gdb port driver
dcons_crom(4): FireWire attachment
dconschat(8): User interface to dcons

Tested with: i386, i386-PAE, and sparc64.
2003-10-24 15:44:10 +00:00
Marcel Moolenaar
4d85274d1a Remove unused file. db_disasm() has been implemented in db_interface.c
now.
2003-10-24 06:48:41 +00:00
Marcel Moolenaar
1f98bf53d9 Hook-up the new disassembler. 2003-10-23 06:11:37 +00:00
Nate Lawson
3c0014e8ae Add the ACPICA_PEDANTIC option which is off by default. Enabling it will
enable strict checks of the AML.  Our default behavior will be to relax
checks to work on as many platforms as possible.  Also clean up and document
other ACPI options while I'm here.
2003-10-22 22:27:49 +00:00
Robert Watson
5d79de444b Hook up to the build for options MAC:
security/mac/mac_net.c
	security/mac/mac_pipe.c
	security/mac/mac_process.c
	security/mac/mac_system.c
	security/mac/mac_vfs.c

Note: Here begins a period of NOTES/LINT build breakage due to duplicate
symbols that will shortly be removed from kern_mac.c.

Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-10-22 20:39:33 +00:00
Hajimu UMEMOTO
9132d5071c - revert to old rijndael code. new rijndael code broke gbde.
- since aes-xcbc-mac and aes-ctr require functions in new
  rijndael code, aes-xcbc-mac and aes-ctr are disabled for now.
2003-10-19 21:28:34 +00:00
Hidetoshi Shimokawa
e9e688e243 Add SBP-II target mode driver.
Though this is still incomplete and has some missing features such as
exclusive login and event notification, it may be enough for someone
who wants to play with it.

This driver is supposed to work with firewire(4), targ(4) of CAM(4)
and scsi_target(8) which can be found in /usr/share/example/scsi_target.
This driver doesn't require sbp(4) which implements initiator mode.

Sample configuration:

Kernel: (you can use modules as well)
device	firewire
device	scbus
device	targ
device	sbp_targ

After reboot:
# mdconfig -a -t malloc -s 10m
md0
# scsi_target 0:0:0 /dev/md0
(Assuming sbp_targ0 on scbus0)

You should find the 10MB HDD on FreeBSD/MacOS X/WinXP or whatever connected
to the target using FireWire.

Manpage is not finished yet.
2003-10-18 05:41:31 +00:00
Poul-Henning Kamp
db25ce18d8 Make sure to pull in all relevant crypto for GEOM_BDE 2003-10-15 08:53:04 +00:00
Alan Cox
7fb578933f MFia64
Move uma_small_alloc() and uma_small_free() to uma_machdep.c.
2003-10-14 05:51:31 +00:00
Hajimu UMEMOTO
66c7fe4056 use BF_ecb_encrypt().
Obtained from:	KAME
2003-10-13 19:26:08 +00:00
Hajimu UMEMOTO
b42ac57f4f - support AES counter mode for ESP.
- use size_t as return type of schedlen(), as there's no error
  check needed.
- clear key schedule buffer before freeing.

Obtained from:	KAME
2003-10-13 14:57:41 +00:00
Hajimu UMEMOTO
c65ee7c758 - support AES XCBC MAC for AH
- correct SADB_X_AALG_RIPEMD160HMAC to 8

Obtained from:	KAME
2003-10-13 04:54:51 +00:00
Hajimu UMEMOTO
3dbacd2651 use opencrypto for RMD160.
Requested by:	sam
2003-10-12 18:25:38 +00:00
Hajimu UMEMOTO
492528c051 - RIPEMD160 support
- pass size arg to ah->result (avoid assuming result buffer size)

Obtained from:	KAME
2003-10-12 09:41:42 +00:00
Poul-Henning Kamp
b8ab710431 Free the SCSI cd major number 2003-10-06 09:13:08 +00:00
Warner Losh
eefb5d68b2 While make has been fixed to grok this construct, the new make hasn't
been widely deploy and that's causing us a lot of pain.  Back out the
last commit for a few weeks so that we can lessen the support load in
current@ asking why they can't build kernels anymore.  Instructions in
UPDATING have been updated, but this should be more effective.

Revert the reverting: November 1st, 2003
2003-10-03 22:00:06 +00:00
Ruslan Ermilov
bf17fc53ac Revert rev. 1.86, I've fixed make(1) (make/dir.c,v 1.32).
PR:		bin/34062
2003-10-02 21:34:06 +00:00
Peter Wemm
6ccf265bb0 Commit Bosko's patch to clean up the PSE/PG_G initialization to and
avoid problems with some Pentium 4 cpus and some older PPro/Pentium2
cpus.  There are several problems, some documented in Intel errata.
This patch:
1) moves the kernel to the second page in the PSE case.  There is an
errata that says that you Must Not point a 4MB page at physical
address zero on older cpus.  We avoided bugs here due to sheer luck.
2) sets up PSE page tables right from the start in locore, rather than
trying to switch from 4K to 4M (or 2M) pages part way through the boot
sequence at the same time that we're messing with PG_G.

For some reason, the pmap work over the last 18 months seems to tickle
the problems, and the PAE infrastructure changes disturb the cpu
bugs even more.

A couple of people have reported a problem with APM bios calls during
boot.  I'll work with people to get this resolved.

Obtained from:	bmilekic
2003-10-01 23:46:08 +00:00
Hajimu UMEMOTO
8373d51d4b randomize IPv6 fragment ID.
Obtained from:	KAME
2003-10-01 15:13:29 +00:00
Peter Wemm
00f553ed0c Stop this warning:
"Makefile", line 35: warning: "grep DDB opt_ddb.h" returned non-zero status
2003-09-30 03:49:09 +00:00
Scott Long
5dfa218a11 Remove the static reservations for the raid and raidctl devices. 2003-09-29 14:15:57 +00:00
Scott Long
ca0ef5374f aac no longer uses a static major number. 2003-09-29 14:11:23 +00:00
Poul-Henning Kamp
b294143142 Introduce no_poll() default method for device drivers. Have it
do exactly the same as vop_nopoll() for consistency and put a
comment in the two pointing at each other.

Retire seltrue() in favour of no_poll().

Create private default functions in kern_conf.c instead of public
ones.

Change default strategy to return the bio with ENODEV instead of
doing nothing which would lead the bio stranded.

Retire public nullopen() and nullclose() as well as the entire band
of public no{read,write,ioctl,mmap,kqfilter,strategy,poll,dump}
funtions, they are the default actions now.

Move the final two trivial functions from subr_xxx.c to kern_conf.c
and retire the now empty subr_xxx.c
2003-09-27 12:53:33 +00:00
Max Khon
c4f02a891f - Support for multibyte charsets in LIBICONV.
- CD9660_ICONV, NTFS_ICONV and MSDOSFS_ICONV kernel options
(with corresponding modules).
- kiconv(3) for loadable charset conversion tables support.

Submitted by:	Ryuichiro Imura <imura@ryu16.org>
2003-09-26 20:26:25 +00:00
Sam Leffler
28cfb8fc84 indicate PFIL_HOOKS is now required by IPFILTER; it used to automagically
be defined in net/pfil.h
2003-09-25 16:06:17 +00:00
Marcel Moolenaar
b8d941f010 Move uma_small_alloc() and uma_small_free() to uma_machdep.c. These
functions reference UMA internals from <vm/uma_int.h>, which makes
them highly unwanted in non-UMA specific files.

While here, prune the includes in pmap.c and use __FBSDID(). Move
the includes above the descriptive comment.

The copyright of uma_machdep.c is assigned to the project and can
be reassigned to the foundation if and when when such is preferrable.
2003-09-20 19:27:48 +00:00
John Baldwin
ad27c4c7e0 Document MUTEX_NOINLINE.
Reported by:	sam
2003-09-19 19:04:30 +00:00
Takanori Watanabe
0d62746979 Add uart pccard attachment decription on conf/files, too.
Pointed out by: ru
2003-09-14 17:02:59 +00:00
Marcel Moolenaar
8194412b89 Add support for using uart(4) for pulse capturing for the Pulse Per
Second (PPS) timing interface. The support is non-optional and by
default uses the DCD line signal as the pulse input. A compile-time
option (UART_PPS_ON_CTS) can be used to have uart(4) use the CTS line
signal.

Include <sys/timepps.h> in uart_bus.h to avoid having to add the
inclusion of that header in all source files.

Reviewed by: phk
2003-09-11 23:06:42 +00:00
Bill Paul
9bac70b851 Add a PHY driver to support the built-in gigE PHY in the 8169S/8110S
ethernet chips. This driver is pretty simple, however it contains
special DSP initialization code which is needed in order to get
the chip to negotiate a gigE link. (This special initialization
may not be needed in subsequent chip revs.) Also:

- Fix typo in if_rlreg.h (RL_GMEDIASTAT_1000MPS -> RL_GMEDIASTAT_1000MBPS)

- Deal with shared interrupts in re_intr(): if interface isn't up,
  return.

- Fix another bug in re_gmii_writereg() (properly apply data field mask)

- Allow PHY driver to read the RL_GMEDIASTAT register via the
  re_gmii_readreg() register (this is register needed to determine
  real time link/media status).
2003-09-11 03:53:46 +00:00
Marcel Moolenaar
999a2bfab3 Add LOG2_ID_PAGE_SIZE to the mix of options on ia64. 2003-09-09 18:30:20 +00:00
Bill Paul
b9f78d2b4a Add a device driver for the Broadcom BCM4401 ethernet controller,
written by Stuart Walsh and Duncan Barclay (with some kibbitzing by
me). I'm checking it in on Stuart's behalf.

The BCM4401 is built into several x86 laptop and desktop systems. For the
moment, I have only enabled it in the x86 kernel config because although
it's a PCI device, I haven't heard of any standalone NICs that use it. If
somebody knows of one, we can easily add it to the other arches.

This driver uses register/structure data gleaned from the Linux
driver released by Broadcom, but does not contain any of the code
from the Linux driver itself. It uses busdma.
2003-09-09 18:17:23 +00:00
Eric Anholt
a1810e1513 Hook the SiS DRM up to the build
Sponsored by:	LinuxFund
2003-09-09 00:29:02 +00:00
Bill Paul
a94100fa9b Take the support for the 8139C+/8169/8169S/8110S chips out of the
rl(4) driver and put it in a new re(4) driver. The re(4) driver shares
the if_rlreg.h file with rl(4) but is a separate module. (Ultimately
I may change this. For now, it's convenient.)

rl(4) has been modified so that it will never attach to an 8139C+
chip, leaving it to re(4) instead. Only re(4) has the PCI IDs to
match the 8169/8169S/8110S gigE chips. if_re.c contains the same
basic code that was originally bolted onto if_rl.c, with the
following updates:

- Added support for jumbo frames. Currently, there seems to be
  a limit of approximately 6200 bytes for jumbo frames on transmit.
  (This was determined via experimentation.) The 8169S/8110S chips
  apparently are limited to 7.5K frames on transmit. This may require
  some more work, though the framework to handle jumbo frames on RX
  is in place: the re_rxeof() routine will gather up frames than span
  multiple 2K clusters into a single mbuf list.

- Fixed bug in re_txeof(): if we reap some of the TX buffers,
  but there are still some pending, re-arm the timer before exiting
  re_txeof() so that another timeout interrupt will be generated, just
  in case re_start() doesn't do it for us.

- Handle the 'link state changed' interrupt

- Fix a detach bug. If re(4) is loaded as a module, and you do
  tcpdump -i re0, then you do 'kldunload if_re,' the system will
  panic after a few seconds. This happens because ether_ifdetach()
  ends up calling the BPF detach code, which notices the interface
  is in promiscuous mode and tries to switch promisc mode off while
  detaching the BPF listner. This ultimately results in a call
  to re_ioctl() (due to SIOCSIFFLAGS), which in turn calls re_init()
  to handle the IFF_PROMISC flag change. Unfortunately, calling re_init()
  here turns the chip back on and restarts the 1-second timeout loop
  that drives re_tick(). By the time the timeout fires, if_re.ko
  has been unloaded, which results in a call to invalid code and
  blows up the system.

  To fix this, I cleared the IFF_UP flag before calling ether_ifdetach(),
  which stops the ioctl routine from trying to reset the chip.

- Modified comments in re_rxeof() relating to the difference in
  RX descriptor status bit layout between the 8139C+ and the gigE
  chips. The layout is different because the frame length field
  was expanded from 12 bits to 13, and they got rid of one of the
  status bits to make room.

- Add diagnostic code (re_diag()) to test for the case where a user
  has installed a broken 32-bit 8169 PCI NIC in a 64-bit slot. Some
  NICs have the REQ64# and ACK64# lines connected even though the
  board is 32-bit only (in this case, they should be pulled high).
  This fools the chip into doing 64-bit DMA transfers even though
  there is no 64-bit data path. To detect this, re_diag() puts the
  chip into digital loopback mode and sets the receiver to promiscuous
  mode, then initiates a single 64-byte packet transmission. The
  frame is echoed back to the host, and if the frame contents are
  intact, we know DMA is working correctly, otherwise we complain
  loudly on the console and abort the device attach. (At the moment,
  I don't know of any way to work around the problem other than
  physically modifying the board, so until/unless I can think of a
  software workaround, this will have do to.)

- Created re(4) man page

- Modified rlphy.c to allow re(4) to attach as well as rl(4).

Note that this code works for the sample 8169/Marvell 88E1000 NIC
that I have, but probably won't work for the 8169S/8110S chips.
RealTek has sent me some sample NICs, but they haven't arrived yet.
I will probably need to add an rlgphy driver to handle the on-board
PHY in the 8169S/8110S (it needs special DSP initialization).
2003-09-08 02:11:25 +00:00
Marcel Moolenaar
c8956b36d6 Improved English, proper spacing and capitalization for the serial
drivers. The shared 0x10 flag has been reworded to be more precise
and complete.

Submitted by: bde
Edited by: marcel
2003-09-07 19:19:49 +00:00
Tim J. Robbins
d14e51c95c Add support for the Coda 6.x venus<->kernel interface. This extends
FIDs to be 128-bits wide and adds support for realms.

Add a new CODA_COMPAT_5 option, which requests support for the old
Coda 5.x interface instead of the new one.

Create a new coda5.ko module that supports the 5.x interface, and make
the existing coda.ko module use the new 6.x interface. These modules
cannot both be loaded at the same time.

Obtained from:	Jan Harkes & the coda-6.0.2 distribution,
		NetBSD (drochner) (CODA_COMPAT_5 option).
2003-09-07 07:43:10 +00:00
Warner Losh
4d60276b05 Add proper pc98 MD files. Add a commented out cbus attachment for
uart because that depends on the cbus implementation that nyan-san and
I came up with after the CBUG meeting and not yet ready for the tree.
2003-09-07 05:05:40 +00:00
Marcel Moolenaar
501ef98fe8 Add uart(4). Shuffle the information about sio(4) flags and options
so that it's clear whicfh flags/options are used by both sio(4) and
uart(4) and which flags/options are specific to sio(4).
2003-09-07 03:45:48 +00:00
Marcel Moolenaar
2bec1c8919 Hook-up the uart(4) driver to the build. For a detailed description
of what uart(4) is and/or is not see the initial commit log of one
of the files in sys/dev/uart (or see share/man/man4/uart.4).

Note that currently pc98 shares the MD file with i386. This needs
to change when pc98 support is fleshed-out to properly support the
various UARTs. A good example is sparc64 in this respect.

We build uart(4) as a module on all platforms. This may break
the ppc port. That depends on whether they do actually build
modules.

To use uart(4) on alpha, one must use the NO_SIO option.
2003-09-06 23:23:26 +00:00
Marcel Moolenaar
dc7d0dea12 Enhance puc(4) to support uart(4). This includes:
o  Introduce PUC_PORT_TYPE_UART so that we can attach to uart(4),
o  Introduce port sub-types (eg PUC_PORT_UART_NS8250, PUC_PORT_UART_Z8530)
   to handle different hardware and determine resource sizes.
o  Introduce two new IVARs: PUC_IVAR_SUBTYPE and PUC_IVAR_REGSHFT. Both
   are used by uart(4) to get sufficient information to talk to the HW.
o  Introduce PUC_FLAGS_ALTRES to tell puc(4) to try memory mapped I/O
   if I/O port space cannot be allocated, or vice versa.
o  Have ports of type PUC_PORT_TYPE_COM attach to uart(1) if attaching
   to sio(4) fails (due to not having the sio driver).
o  Put struct puc_device_description in struct puc_softc instead of
   having a pointer to a device description in the softc. This allows
   us to create device descriptions on the fly without having to use
   malloc() or otherwise have them staticly defined.
o  Move puc_find_description() from puc.c to puc_pci.c as it's specific
   to PCI.
o  Add EBUS and SBUS frontends for use on sparc64. Note that the P in
   puc stands for PCI, so we kinda mess things up here. It's too soon
   to worry about it though. We'll know what to do about it in time.

NOTE: This commit changes the behaviour of puc(4) to not quieten the
device probe and attach for child devices. The uart(4) driver provides
additional device description that is valuable to have.
2003-09-06 21:48:50 +00:00
Marcel Moolenaar
dfbd7790d4 Load the kernel at a 64M instead of 5M. The advantage of this is that
we can switch to 64M-sized identity mappings and not having to map the
first 64M. This is especially important because the first 1M contains
the VGA frame buffer and is otherwise a legacy memory range. Best to
make as little assumptions about it as possible. Switching to 64M-sized
mappings is important to avoid creating overlapping translations, which
have the side-effect of triggering machine checks. This is currently
what's preventing us to boot on an Intel Tiger 4.

Note that since we currently use 256M-sized identity mappings, we
would reduce the size of the mappings and consequently increase the
TLB pressure. The performance implications of this are minimal if
measurable at all because identify mappings are not our primary
means for memory management.

Also note that there's no guarantee that physical memory exists at
64M. Then again, we didn't had the guarantee when we were loading at
5M. We'll deal with this when it's a problem.

Discussed with: arun@
2003-09-06 05:15:36 +00:00
Poul-Henning Kamp
f633e00615 Detect Geode CPUs and initialize the 27MHz timecounter "Geode".
This timecounter is 2usec faster than the i8254 and has 22 times
better resolution.
2003-08-31 16:20:34 +00:00
Nate Lawson
ad1fdf57d2 Use the ACPICA AcpiEnterSleepStateS4bios instead of rolling our own. This
change also disables interrupts around non-S4 suspends whereas before we
did not do this.  Our version of AcpiEnterSleepStateS4bios was almost
identical to the ACPICA version.
2003-08-29 04:02:19 +00:00
Hidetoshi Shimokawa
b87da29dd4 Reserve 184 for dumb console driver(dcons) which can be found in
ports/devel/dcons.
2003-08-27 07:35:12 +00:00
Yoshihiro Takahashi
e4d023cef8 Switch to dev/syscons/syscons.c. 2003-08-25 07:52:11 +00:00
Yoshihiro Takahashi
175212344f MFi386: revision 1.452 2003-08-25 07:20:41 +00:00
Marcel Moolenaar
875e2e9ca9 Add option NO_SIO to work-around the hardcoded dependency on sio(4).
Without this option it is not possible to omit the driver from the
configuration file and successfully build a kernel.

This option is specific to alpha.
2003-08-25 03:43:08 +00:00
Søren Schmidt
5fdbb0d222 This is a major rework of the ATA driver (ATAng)
Restructure the way ATA/ATAPI commands are processed, use a common
ata_request structure for both. This centralises the way requests
are handled so locking is much easier to handle.

The driver is now layered much more cleanly to seperate the lowlevel
HW access so it can be tailored to specific controllers without touching
the upper layers. This is needed to support some of the newer
semi-intelligent ATA controllers showing up.

The top level drivers (disk, ATAPI devices) are more or less still
the same with just corrections to use the new interface.

Pull ATA out from under Gaint now that locking can be done in a sane way.

Add support for a the National Geode SC1100. Thanks to Soekris engineering
for sponsoring a Soekris 4801 to make this support.

Fixed alot of small bugs in the chipset code for various chips now
we are around in that corner anyways.
2003-08-24 09:22:26 +00:00
Jake Burkholder
e16255d3f0 Hook syscons and the creator driver up to the sparc64. This compiles but
will not link due to missing keyboard drivers.
2003-08-24 01:54:06 +00:00
Matthew N. Dodd
34345c0870 AGP GART driver for NVIDIA nForce/nForce2 chipsets. 2003-08-23 18:00:31 +00:00
Marcel Moolenaar
6ff26c064f Picking PAGE_SHIFT as a global option is a bad idea. Instead call the
option LOG2_PAGE_SIZE.
2003-08-23 03:38:36 +00:00
Marcel Moolenaar
cfe9466fcc Remove PAGE_SIZE_4K, PAGE_SIZE_8K and PAGE_SIZE_16K and replace
them with PAGE_SHIFT. A single option is better to LINT than
multiple mutual exclusive ones.
2003-08-23 03:22:41 +00:00
Marcel Moolenaar
c42c5d3f7a Add rules for font.h and ukbdmap.h. Needed for LINT. 2003-08-23 02:33:36 +00:00
Peter Wemm
4872a3d74c Turn on the MTRR driver. 2003-08-23 00:59:26 +00:00
Peter Wemm
401004db6d Complete the switch to the common 32 bit support code. 2003-08-23 00:58:33 +00:00
Marcel Moolenaar
b60be71f54 DEV_ACPI is an unused option. 2003-08-23 00:14:32 +00:00
Marcel Moolenaar
738777746d Both CLK_USE_I8254_CALIBRATION and TIMER_FREQ have ceased to be options
on ia64 after the cleanup of the clock code.
2003-08-23 00:02:18 +00:00
Warner Losh
74455e5526 Now that the pci include file location migration has been completed,
remove the -I$S/dev and -I@/dev which were there only for pci.

# If I've broken something, please let me know.
2003-08-22 15:41:44 +00:00
Robert Watson
782f725560 Hook up mac_stub to the modules Makefile.
Hook up mac_stub in files and options.
Reference mac_stub in NOTES.
2003-08-21 16:48:39 +00:00
Marcel Moolenaar
7b50deb12e Add ptrace_machdep.c. 2003-08-15 18:01:10 +00:00
Poul-Henning Kamp
c43001fc56 As warned: Initiate deorbit burn for the pcaudio driver. 2003-08-15 14:56:05 +00:00
Alexander Langer
30e27d9623 Add a overhaul of the soundchip initialization for the MSP34xx chipsets
found only many tv-cards.

We currently use more ore less evil hacks (slow_msp_audio sysctl) to
configure the various variants of these chips in order to have
stereo autodetection work.  Nevertheless, this doesn't always work
even though it _should_, according to the specs.
This is, for example, the case for some popular Hauppauge models sold
sold in Germany.

However, the Linux driver always worked for me and others.  Looking at
the sourcecode you will find that the linux-driver uses a very much
enhanced approach to program the various msp34xx chipset variants,
which is also found in the specs for these chips.

This is a port of the Linux MSP34xx code, written by Gerd Knorr
<kraxel@bytesex.org>, who agreed to re-release his code under a
BSD license for this port.

A new config option "BKTR_NEW_MSP34XX_DRIVER" is added, which is required
to enable the new driver.  Otherwise the old code is used.

The msp34xx.c file is diff-reduced to the linux-driver to make later
modifications easier, thus it doesn't follow style(9) in most cases.

Approved by:	roger (committing this, no time to test/review),
		keichii (code review)
2003-08-12 09:45:34 +00:00
Hartmut Brandt
ee4080d424 Add ng_atmpif: a HARP physical interface emulation. This allows one
to run the HARP ATM stack without real hardware.

Submitted by:	Vincent Jardin <vjardin@wanadoo.fr>
2003-08-11 08:40:02 +00:00
Ruslan Ermilov
98a32cb196 Fix logic in Makefile.i386,v 1.249: only back up ${DESTDIR}${KODIR}
to ${DESTDIR}${KODIR}.old if we have booted from ${DESTDIR}${KODIR},
and always keep kern.bootfile in a good shape.
2003-08-07 19:12:06 +00:00
Jeffrey Hsu
e0f688ba30 Add support for "options PIM" in the kernel configuration file.
Submitted by:	Pavlin Radoslavov <pavlin@icir.org>
2003-08-07 18:19:28 +00:00
Nate Lawson
327f90d8cc Remove nowerror from some files that no longer generate warnings. 2003-08-07 15:51:35 +00:00
Warner Losh
11dc7df11d fix disordering of filenames. Place the dev/ppc files in alphabetical
order.
2003-08-04 02:39:14 +00:00
Poul-Henning Kamp
86e2f1f1ea Remove the NSWAPDEV option, we have no upper limit on how many
swap devices we can have anymore.
2003-08-03 13:39:59 +00:00
Yoshihiro Takahashi
686f75c3bf MFi386: revision 1.449. 2003-08-02 09:23:03 +00:00
Marcel Moolenaar
efa60f3b1a Fix ordering bug created by previous commit. While here, make ppc(4)
dependent on isa.
2003-08-01 05:28:43 +00:00
Doug Ambrisko
a373227418 Add printer support to puc(4) driver.
-	Move isa/ppc* to sys/dev/ppc (repo-copy)
      -	Add an attachment method to ppc for puc
      -	In puc we need to walk the chain of parents.
Still to do, is to make ppc(4) & puc(4) work on other platforms.  Testers
wanted.

PR:		38372 (in spirit done differently)
Verified by:	Make universe (if I messed up a platform please fix)
2003-08-01 02:25:32 +00:00
Scott Long
cc2185305b Enforce -fno-strict-aliasing to override the converse that is implied by
-O2 and -Os.

Reviewed by:	peter
2003-07-30 22:11:36 +00:00
Nate Lawson
dda5f182ae Fix the new DA_OLD_QUIRKS option for normal and module compiles.
Pointed out by: 	bde
2003-07-29 18:08:16 +00:00
Nate Lawson
af991a6d16 Deprecate USB and Firewire quirks. We should now never send 6 byte commands
to such devices.  If a device fails due to this commit, add:
   options DA_OLD_QUIRKS
to the kernel config and recompile.  Then send the output of "camcontrol
inquiry da0" to scsi@freebsd.org so the quirk can be re-enabled.
2003-07-29 04:32:33 +00:00
Peter Wemm
31a4d2f45a Turn -Werror back on again. I've tested with/without
invariants/witness/etc on i386, sparc64, amd64 and alpha for GENERIC.
Lint probably still needs fixing, as do a couple of other drivers
that have broken recently and not been noticed.
2003-07-26 03:46:39 +00:00