Commit Graph

2359 Commits

Author SHA1 Message Date
scottl
061851f776 Switch the default scheduler to 4BSD to match what will go into RELENG_5 soon.
It can be switched back once 5.3 is tested and released.  Also turn on
PREEMPTION as many of the stability problems with it have been fixed.

MT5: 3 days.
2004-09-07 22:37:43 +00:00
julian
5813d27029 Refactor a bunch of scheduler code to give basically the same behaviour
but with slightly cleaned up interfaces.

The KSE structure has become the same as the "per thread scheduler
private data" structure. In order to not make the diffs too great
one is #defined as the other at this time.

The KSE (or td_sched) structure is  now allocated per thread and has no
allocation code of its own.

Concurrency for a KSEGRP is now kept track of via a simple pair of counters
rather than using KSE structures as tokens.

Since the KSE structure is different in each scheduler, kern_switch.c
is now included at the end of each scheduler. Nothing outside the
scheduler knows the contents of the KSE (aka td_sched) structure.

The fields in the ksegrp structure that are to do with the scheduler's
queueing mechanisms are now moved to the kg_sched structure.
(per ksegrp scheduler private data structure). In other words how the
scheduler queues and keeps track of threads is no-one's business except
the scheduler's. This should allow people to write experimental
schedulers with completely different internal structuring.

A scheduler call sched_set_concurrency(kg, N) has been added that
notifies teh scheduler that no more than N threads from that ksegrp
should be allowed to be on concurrently scheduled. This is also
used to enforce 'fainess' at this time so that a ksegrp with
10000 threads can not swamp a the run queue and force out a process
with 1 thread, since the current code will not set the concurrency above
NCPU, and both schedulers will not allow more than that many
onto the system run queue at a time. Each scheduler should eventualy develop
their own methods to do this now that they are effectively separated.

Rejig libthr's kernel interface to follow the same code paths as
linkse for scope system threads. This has slightly hurt libthr's performance
but I will work to recover as much of it as I can.

Thread exit code has been cleaned up greatly.
exit and exec code now transitions a process back to
'standard non-threaded mode' before taking the next step.
Reviewed by:	scottl, peter
MFC after:	1 week
2004-09-05 02:09:54 +00:00
ru
3b92254bd8 MFi386: revision 1.1172. 2004-09-02 12:50:47 +00:00
peter
1d9abdbe78 Kill count device support from config. I've changed the last few
remaining consumers to have the count passed as an option.  This is
i4b, pc98/wdc, and coda.

Bump configvers.h from 500013 to 600000.

Remove heuristics that tried to parse "device ed5" as 5 units of the ed
device.  This broke things like the snd_emu10k1 device, which required
quotes to make it parse right.  The no-longer-needed quotes have been
removed from NOTES, GENERIC etc.  eg, I've removed the quotes from:
   device  snd_maestro
   device  "snd_maestro3"
   device  snd_mss

I believe everything will still compile and work after this.
2004-08-30 23:03:58 +00:00
des
431e20a6fe Remove the HW_WDOG option; it serves no purpose.
MFC after:	3 days
2004-08-29 11:10:09 +00:00
andre
d243747d92 Always compile PFIL_HOOKS into the kernel and remove the associated kernel
compile option.  All FreeBSD packet filters now use the PFIL_HOOKS API and
thus it becomes a standard part of the network stack.

If no hooks are connected the entire packet filter hooks section and related
activities are jumped over.  This removes any performance impact if no hooks
are active.

Both OpenBSD and DragonFlyBSD have integrated PFIL_HOOKS permanently as well.
2004-08-27 15:16:24 +00:00
nyan
50899074bd Merged from sys/dev/fdc/fdc.c revision 1.283. 2004-08-22 15:10:53 +00:00
nyan
93c6ae31ae MFi386: revision 1.597. 2004-08-05 13:01:29 +00:00
nyan
394040b4a2 MFi386: revision 1.410. 2004-08-05 12:58:52 +00:00
markm
f516045149 Making a loadable null.ko for /dev/(null|zero) proved rather
unpopular, so remove this (mis)feature.

Encouragement provided by:	jhb (and others)
2004-08-03 19:24:54 +00:00
nyan
e136993596 MFi386: revision 1.1167 2004-08-01 13:01:36 +00:00
markm
a6c822020d Break out the MI part of the /dev/[k]mem and /dev/io drivers into
their own directory and module, leaving the MD parts in the MD
area (the MD parts _are_ part of the modules). /dev/mem and /dev/io
are now loadable modules, thus taking us one step further towards
a kernel created entirely out of modules. Of course, there is nothing
preventing the kernel from having these statically compiled.
2004-08-01 11:40:54 +00:00
nyan
20fb34d054 Merged from sys/dev/sio/sio.c revision 1.450. 2004-07-24 15:13:42 +00:00
nyan
cb0e37bf34 MFi386: revision 1.596. 2004-07-19 11:17:57 +00:00
maxim
531ff1b33d In -CURRENT pseudo devices are not statically assigned at compile time,
remove a stale comment.

PR:		kern/62285
2004-07-18 09:03:12 +00:00
nyan
e722cc9e5e Rename the sound device drivers. 2004-07-17 10:22:42 +00:00
nyan
bd381ddb1f Merged from the following changes.
- sys/dev/fdc/fdc.c revision 1.281
  - sys/dev/fdc/fdcvar.h revision 1.3
  - sys/dev/fdc/fdc_isa.c revision 1.7
2004-07-17 10:07:19 +00:00
phk
f00200d8a4 Preparation commit for the tty cleanups that will follow in the near
future:

rename ttyopen() -> tty_open() and ttyclose() -> tty_close().

We need the ttyopen() and ttyclose() for the new generic cdevsw
functions for tty devices in order to have consistent naming.
2004-07-15 20:47:41 +00:00
nyan
e190a12d82 Move the fdc_alloc_resources function into the bus front end. 2004-07-15 15:00:02 +00:00
des
8bab8842ff Unbreak LINT: device card no longer takes a count. 2004-07-14 17:50:08 +00:00
imp
6218cf3dac oldcard's card device no longer requires a count 2004-07-13 16:11:34 +00:00
nyan
2c6fa2f70b Merged from recent fdc driver changes.
Make a separate function to check FDD type.
2004-07-13 13:14:37 +00:00
nyan
72619ae6d5 MFi386: revision 1.213.
Fix miss merging in previous change.
2004-07-13 12:58:36 +00:00
davidxu
0a29616acf Add ptrace_clear_single_step(), alpha already has it for years, the function
will be used by ptrace to clear a thread's single step state.
2004-07-13 07:22:56 +00:00
phk
3683e698d2 Introduce ttygone() which indicates that the hardware is detached.
Move dtrwait logic to the generic TTY level.
2004-07-11 15:18:39 +00:00
nyan
87af04ca9a MFi386: revision 1.212. 2004-07-11 13:46:10 +00:00
nyan
5a42d7a522 MFi386: revision 1.406 2004-07-11 13:45:39 +00:00
marcel
da93585cf4 MFi386: Update for the KDB framework:
o  Implement makectx().
o  Call kdb_enter() instead of Debugger().
o  Remove implementation of Debugger().
2004-07-10 23:04:42 +00:00
marcel
6660e9e4c0 Update for the KDB framework. Sanitize the alpha console code now that
it's in the way even more. Basicly: remove all alpha specific console
support from gfb(4), sio(4) and syscons(4). Rewrite the alpha console
initialization to be identical to all other platforms. In a nutshell:
call cninit().
The platform specific code now only sets or clears RB_SERIAL and thus
automaticly causes the right console to be selected.

sio.c:
o  Replace the remote GDB hacks and use the GDB debug port interface
   instead.
o  Make debugging code conditional upon KDB instead of DDB.
o  Call kdb_alt_break() instead of db_alt_break().
o  Call kdb_enter() instead of breakpoint().
o  Remove the ugly compatibility of using the console as the debug
   port.
2004-07-10 22:29:41 +00:00
nyan
ee6a790d11 - Merged from sys/dev/fdc/fdc.c revision 1.275.
- Break out the cbus front end from fd.c.
- Remove the pccard support because it was broken.
2004-07-08 13:56:17 +00:00
nyan
c6183ca7fa MFi386: revision 1.16. 2004-07-08 13:48:49 +00:00
nyan
8ada288b80 Remove obsolete defines. 2004-07-08 13:47:56 +00:00
nyan
02dfc72e71 MFi386: revision 1.1164. 2004-07-08 13:47:01 +00:00
nyan
856b3101fe MFi386: revision 1.1163 2004-07-01 09:34:15 +00:00
nyan
86a740e80c Merged from sys/dev/sio/sio.c revision 1.446. 2004-07-01 09:32:32 +00:00
jhb
050c6affec - Shorten the names for the TTY related swi interrupt handlers as the
'tty:' prefix is largely redundant.
- Fix the priority of the low-priority TTY SWIs that are hung off of the
  softclock thread.

Submitted by:	bde (2)
2004-06-28 16:17:11 +00:00
nyan
b3df34e2f3 Merged from sys/dev/sio/sio.c revision 1.444. 2004-06-28 13:28:20 +00:00
phk
0567d4ef5f Pick the hotchar out of the tty structure instead of caching private
copies.

No current line disciplines have a dynamically changing hotchar, and
expecting to receive anything sensible during a change in ldisc is
insane so no locking of the hotchar field is necessary.
2004-06-26 09:20:07 +00:00
nyan
eb4d8613c7 Merged from sys/dev/sio/sio.c revision 1.442.
(Use generic support for modemcontrol and BREAK ioctls.)
2004-06-26 04:00:46 +00:00
phk
ace6a2a6f7 Remove the TIOCDCDTIMESTAMP option.
The RFC-2783 PPS-API (<sys/timepps.h>) provides better and more
configurable service.
2004-06-22 20:32:17 +00:00
nyan
1201cc464b Merged from sys/dev/sio/sio.c revisions 1.439 and 1.440. 2004-06-22 12:12:10 +00:00
nyan
10c838a361 MFi386: revision 1.592. 2004-06-22 12:11:20 +00:00
nyan
df666606e4 MFi386: revision 1.1161 2004-06-16 14:21:52 +00:00
phk
dfd1f7fd50 Do the dreaded s/dev_t/struct cdev */
Bump __FreeBSD_version accordingly.
2004-06-16 09:47:26 +00:00
imp
5635176f57 Include vm/vm_param.h to pull in KERNBASE now. This should fix the
pc98 tinderbox breakage.
2004-06-13 20:17:44 +00:00
phk
86602fc06c Deorbit COMPAT_SUNOS.
We inherited this from the sparc32 port of BSD4.4-Lite1.  We have neither
a sparc32 port nor a SunOS4.x compatibility desire these days.
2004-06-11 11:16:26 +00:00
jhb
f7c8770deb Remove atdevbase and replace it's remaining uses with direct references to
KERNBASE instead.
2004-06-10 20:31:00 +00:00
phk
f873013198 Add missing <sys/module.h> includes. 2004-06-07 06:04:27 +00:00
phk
17b52df3d7 Centralize the line discipline optimization determination in a function
called ttyldoptim().

Use this function from all the relevant drivers.

I belive no drivers finger linesw[] directly anymore, paving the way for
locking and refcounting.
2004-06-04 21:55:55 +00:00
phk
06049d3eaf Manual edits to change linesw[]-frobbing to ttyld_*() calls. 2004-06-04 20:04:52 +00:00
phk
ba3920e2a2 Machine generated patch which changes linedisc calls from accessing
linesw[] directly to using the ttyld...() functions

The ttyld...() functions ar inline so there is no performance hit.
2004-06-04 16:02:56 +00:00
phk
71166afe0a Add missing <sys/module.h> #includes 2004-06-04 13:04:10 +00:00
phk
9bb2c2f2d2 Make the remaining serial drivers call ttyioctl() rather than calling
the linedisc directly.
2004-06-04 08:02:37 +00:00
phk
9db9f1379c Add missing <sys/module.h> includes currently relying on nested include
in <sys/kernel.h>
2004-06-03 06:10:02 +00:00
phk
e0c89dae13 There is no need to explicitly call the stop function. In all likelyhood
->l_close() did it and ttyclose certainly will.
2004-06-01 11:57:15 +00:00
phk
b59eec9a5a There is no need to explicitly call ttwakeup() and ttwwakeup() after
ttyclose() has been called.  It's already been done once by ttyclose,
and probably once by the line-discipline too.
2004-06-01 11:38:06 +00:00
phk
d4a4e27cd4 ttyclose() increments t_gen. Remove redundant increments in drivers. 2004-06-01 10:15:56 +00:00
nyan
7652ad90b0 Merged from sys/dev/fdc/fdc.c revision 1.272. 2004-05-30 13:56:06 +00:00
nyan
0075f8d2b9 MFi386: revision 1.1160. 2004-05-18 11:56:56 +00:00
nyan
db874ef060 Mereged from sys/dev/sio/sio.c revision 1.429. 2004-05-06 13:16:45 +00:00
bde
704879452c Oops, switch to using the moved cy driver for pc98 too (remove pointers
to old files in files.pc98 and "count" parameter in NOTES).
2004-05-03 16:03:41 +00:00
marcel
381147f827 Add option GEOM_GPT. This brings the ability to have a large number of
partitions on a single disk.
2004-05-02 20:40:19 +00:00
obrien
3937b2c0ab Spell Ethernet correctly. 2004-05-02 18:57:29 +00:00
nyan
5846678ba8 - Remove obsolete examples.
- Add a comment about meaning of flags.
- Disable unused defines.
2004-05-01 06:53:38 +00:00
nyan
4bd4019860 Merged from sys/dev/sio/sio.c revision 1.428. 2004-05-01 06:46:10 +00:00
nyan
8b17bc4875 Add the commented out rue(4) entry. 2004-04-29 08:33:26 +00:00
nyan
2771b37b82 Merged from sys/isa/fd.c revision 1.270. 2004-04-25 12:43:44 +00:00
imp
cd0c9b1f7e sx was randomly added to NOTES. Instead, place it in the misc
hardware in properly sorted order.  Fix a little disorder while I'm
here.

Submitted by: bde
2004-04-14 02:25:31 +00:00
nyan
7b1ee4071d Enable the sx driver on i386 and pc98. 2004-04-13 14:04:25 +00:00
imp
3a87c31194 The bs driver was replaced with the ct(pc98) driver. takahashi-san
(nyan) says this driver is now obsolete and can be removed.
2004-04-07 05:44:51 +00:00
imp
ebf059d1df Remove advertising clause from University of California Regent's
license, per letter dated July 22, 1999 and email from Peter Wemm,
Alan Cox and Robert Watson.

Approved by: core, peter, alc, rwatson
2004-04-07 05:00:01 +00:00
nyan
2e9bac6578 MFi386: Enable the cy driver. 2004-04-06 14:19:45 +00:00
nyan
e755b66f61 Backout revision 1.31. The twa entries were moved to i386/conf/NOTES. 2004-04-04 04:41:52 +00:00
nyan
ee1f5105c1 The twa device and related options are not needed. 2004-04-01 14:23:41 +00:00
nyan
af934bf968 Add a comment about time stamper.
Submitted by:	chi@bd.mbn.or.jp (Chiharu Shibata)
2004-03-29 12:51:46 +00:00
nyan
8a75d031d7 - Fix PC98 supports after importing auto selection. [1]
- Fix 1.44MB floppy drive probe sequence. [2]

Submitted by:	Watanabe Kazuhiro <CQG00620@nifty.ne.jp> [1]
		chi@bd.mbn.or.jp (Chiharu Shibata) [2]
2004-03-28 13:40:23 +00:00
nyan
f9ac46b8eb MFi386: revision 1.1136. 2004-03-28 12:06:29 +00:00
nyan
94b9ebfa44 MFi386: revision 1.586. 2004-03-28 12:03:39 +00:00
njl
05a1f56fc9 Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by:	Mark Santcroos <marks@ripe.net>
Reviewed by:	imp, dfr, bde
2004-03-17 17:50:55 +00:00
nyan
6e962440fd Don't use the pcic polling. 2004-03-16 12:40:11 +00:00
imp
f16b7102d0 Temporarily comment out cy.
Remove COMPAT_OLDISA
2004-03-15 10:39:37 +00:00
imp
e4c4e93d49 including isa_device.h was historical in this file, remove it 2004-03-15 10:39:01 +00:00
obrien
e3a889945b Shorten a long comment. 2004-03-15 00:49:40 +00:00
imp
e9e7dbbcb8 comment out bs and wd entries in the hints 2004-03-14 23:02:07 +00:00
nyan
994f9faf08 MFi386: Remove the stl and stli drivers. 2004-03-14 09:46:36 +00:00
nyan
d8c0e1b9ca Restore CDIOCREADAUDIO ioctl.
Pointed out by:	KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
2004-03-07 14:16:42 +00:00
nyan
4d5eb6b80f Remove '#include <machine/bus_pio.h>'. This is meaningless. 2004-03-07 05:39:38 +00:00
nyan
da48bd6815 Remove unneeded devices. 2004-03-07 05:38:20 +00:00
nyan
23828c5425 MFi386: revisions from 1.1127 to 1.1131. 2004-03-07 04:09:18 +00:00
nyan
b388cccebb Add the agp, bfe, sk and ti devices. (the agp is disabled by default).
Remove obsolete compat_atdisk device.
2004-03-07 04:07:57 +00:00
phk
355cdf2848 Remove unused FDNUMTOUNIT() macro 2004-02-29 10:21:40 +00:00
nyan
8f0ca54fc2 Merged from sys/isa/fd.c revision 1.266. 2004-02-26 14:59:10 +00:00
phk
ad925439e0 Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be
initialized to D_VERSION.

Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing
four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
2004-02-21 21:10:55 +00:00
phk
fcf7e634fb Device megapatch 3/6:
Add missing D_TTY flags to various drivers.

Complete asserts that dev_t's passed to ttyread(), ttywrite(),
ttypoll() and ttykqwrite() have (d_flags & D_TTY) and a struct tty
pointer.

Make ttyread(), ttywrite(), ttypoll() and ttykqwrite() the default
cdevsw methods for D_TTY drivers and remove the explicit initializations
in various drivers cdevsw structures.
2004-02-21 20:41:11 +00:00
phk
df397dedea Device megapatch 1/6:
Free approx 86 major numbers with a mostly automatically generated patch.

A number of strategic drivers have been left behind by caution, and a few
because they still (ab)use their major number.
2004-02-21 19:42:58 +00:00
phk
49c92e5706 Change the disk(9) API in order to make device removal more robust.
Previously the "struct disk" were owned by the device driver and this
gave us problems when the device disappared and the users of that device
were not immediately disappearing.

Now the struct disk is allocate with a new call, disk_alloc() and owned
by geom_disk and just abandonned by the device driver when disk_create()
is called.

Unfortunately, this results in a ton of "s/\./->/" changes to device
drivers.

Since I'm doing the sweep anyway, a couple of other API improvements
have been carried out at the same time:

The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to
DISKFLAG_NEEDSGIANT

A version number have been added to disk_create() so that we can detect,
report and ignore binary drivers with old ABI in the future.

Manual page update to follow shortly.
2004-02-18 21:36:53 +00:00
nyan
0fb31cbaac MFi386: revision 1.397 (cosmetic changes) 2004-01-30 13:15:42 +00:00
nyan
60605492ee MFi386: revision 1.1122 (typos and cosmetic changes) 2004-01-30 13:06:57 +00:00
nyan
bcac357188 The ataraid device is not needed for pc98. 2004-01-27 15:39:32 +00:00
jeff
8a4acc2156 - Recruit some new ULE users by making it the default scheduler in GENERIC.
ULE will be in a probationary period to determine whether it will be left
   as the default in 5.3 which would likely mean the rest of the 5.x series.
2004-01-24 21:38:52 +00:00
nectar
70865363ca Add PFIL_HOOKS to the GENERIC kernel configuration, primarily so
that one can load the IPFilter module (which requires PFIL_HOOKS).

Requested by:	Many, for over a year
2004-01-24 14:59:51 +00:00
nyan
501b235121 MFi386: revisions from 1.1116 to 1.1119.
Remove NEWCARD related devices.
2004-01-21 16:28:19 +00:00
nyan
f36f9e2c2f Merged from sys/dev/sio/sio.c revision 1.418. 2004-01-21 16:12:29 +00:00
nyan
29386da0d7 MFi386: revision 1.1114. 2004-01-12 03:43:05 +00:00
nyan
772e06d92b MFi386: revision 1.583. 2004-01-11 09:18:33 +00:00
jhb
604579d4b8 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
davidxu
f39653dda8 Make sigaltstack as per-threaded, because per-process sigaltstack state
is useless for threaded programs, multiple threads can not share same
stack.
The alternative signal stack is private for thread, no lock is needed,
the orignal P_ALTSTACK is now moved into td_pflags and renamed to
TDP_ALTSTACK.
For single thread or Linux clone() based threaded program, there is no
semantic changed, because those programs only have one kernel thread
in every process.

Reviewed by: deischen, dfr
2004-01-03 02:02:26 +00:00
bde
d456b60ff2 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
nyan
e05b985b78 Add detach method. 2003-12-28 12:25:49 +00:00
bde
eb31f8e4f7 Merged from sys/dev/sio/sio.c revision 1.417. 2003-12-26 03:06:11 +00:00
imp
87db7e9542 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
imp
03373578dd 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
bde
32b3c399d1 Merged from sys/dev/sio/sio.c revisions 1.415 and 1.416.
Approved by:	nyan
(Blanket approval for simple changes in sio.)
2003-11-17 23:13:08 +00:00
nyan
13dfe9d492 opt_apic.h is not needed. 2003-11-15 12:37:15 +00:00
nyan
fecbec6a59 MFi386: revisions from 1.1102 to 1.1105. 2003-11-15 12:33:39 +00:00
marcel
21340f30b3 Change the clear_ret argument of get_mcontext() to be a flags argument.
Since all callers either passed 0 or 1 for clear_ret, define bit 0 in
the flags for use as clear_ret. Reserve bits 1, 2 and 3 for use by MI
code for possible (but unlikely) future use. The remaining bits are for
use by MD code.

This change is triggered by a need on ia64 to have another knob for
get_mcontext().
2003-11-09 20:31:04 +00:00
tanimura
7eade05dfa - Implement selwakeuppri() which allows raising the priority of a
thread being waken up.  The thread waken up can run at a priority as
  high as after tsleep().

- Replace selwakeup()s with selwakeuppri()s and pass appropriate
  priorities.

- Add cv_broadcastpri() which raises the priority of the broadcast
  threads.  Used by selwakeuppri() if collision occurs.

Not objected in:	-arch, -current
2003-11-09 09:17:26 +00:00
nyan
4dcc0c992a Include machine/asmacros.h instead of machine/asm.h.
Submitted by:	bde
2003-11-05 17:01:51 +00:00
bde
c8d351caf9 Removed reference to the garbage (and soon to be deleted) option
DPT_ALLOW_MEMIO.
2003-11-05 14:34:36 +00:00
nyan
708e6127be 'options APIC_IO' is replaced by 'device apic'. 2003-11-04 13:52:09 +00:00
nyan
a1d3ace09a 'options APIC_IO' is replaced by 'device apic'. 2003-11-04 13:31:44 +00:00
nyan
2e3e36d4ab MFi386: revision 1.206 2003-11-04 13:15:12 +00:00
nyan
ea0509b82b MFi386: revision 1.580 2003-11-04 13:14:14 +00:00
nyan
52ef645f2c Split pc98 support into pc98/pc98/nmi.c. 2003-11-04 13:01:41 +00:00
nyan
dadd9566f1 MFi386: revision 1.579. 2003-10-31 14:54:33 +00:00
nyan
af1d64472e Merged from sys/isa/syscons_isa.c revision 1.24. 2003-10-31 13:48:24 +00:00
nyan
421c39026c MFi386: revision 1.578. 2003-10-31 13:47:43 +00:00
nyan
eb1cd59204 MFi386: revision 1.577. 2003-10-19 11:35:44 +00:00
phk
5a1c5c9c13 Eliminate use bio_blkno. 2003-10-18 17:51:26 +00:00
phk
313310b9a6 Discontinue bio_blkno usage. 2003-10-18 17:45:45 +00:00
nyan
d8d22397ed MFi386: revision 1.576. 2003-10-11 09:24:58 +00:00
nyan
9f426ad282 Merged from sys/dev/sio/sio.c revisions from 1.405 to 1.414. 2003-10-05 11:55:14 +00:00
nyan
b60346b21b MFi386: revisions 1.572, 1.573 and 1.574. 2003-10-05 09:05:45 +00:00
nyan
937fbbdfd4 MFi386: revision 1.205 2003-10-05 08:56:49 +00:00
phk
0c8bfb6d00 OK, I messed up /dev/console with what I had hoped would be compat
code.  Convert remaining console drivers and hope for the best.
2003-09-26 19:35:50 +00:00
phk
df8b28032a Typo in last commit: missing ')' 2003-09-26 12:13:35 +00:00
phk
30f60296f2 Change fb_attach() and fb_detach() to take a integer unit number rather
than a dev_t.

All of the dev_t's passed were bogusly created with makedev()
2003-09-26 10:41:44 +00:00
nyan
2ae09c9ace Implement the bus_space_map() function to allocate resources and initialize
a bus_handle, but currently it does only initializing a bus_handle.
2003-09-23 08:22:34 +00:00
nyan
1087d47522 Merged from sys/isa/fd.c revisions 1.259 and 1.260. 2003-09-18 09:49:08 +00:00
nyan
2edddd40ef Merged from sys/isa/fd.c revision 1.258. 2003-09-13 12:56:05 +00:00
nyan
c4f00ad8a2 MFi386 revisions 1.570 and 1.571. 2003-09-11 14:07:02 +00:00
nyan
66714cf37a MFi386: revision 1.204. 2003-09-11 14:05:06 +00:00
nyan
dbed9b26a2 MFi386: revision 1.1093. 2003-09-11 13:44:48 +00:00
nyan
65e872ed0b Merged from sys/isa/fd.c revisions 1.252, 1.253, 1.254, 1.255 and 1.257. 2003-09-11 13:35:35 +00:00
obrien
f9ed8af720 Sort 'bge' correctly. 2003-09-10 18:54:59 +00:00
wpaul
ce0ede96f1 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
nyan
66f7142c64 Merged from sys/dev/sio/sio.c revisions 1.403 and 1.404. 2003-08-28 11:20:54 +00:00
nyan
4fd68c81f4 Switch to dev/syscons/syscons.c. 2003-08-25 07:52:11 +00:00
nyan
ce8950904e MFi386: revisions 1.202 and 1.203. 2003-08-23 06:06:55 +00:00
imp
3765cbdfd1 bandaide to make this build again 2003-08-16 17:22:54 +00:00