Commit Graph

91946 Commits

Author SHA1 Message Date
Bill Paul
22606b2001 Squelch spurious "gigabit link up" messages generated on some fiber NICs
(mainly the 3Com 3c996B/BCM5701).

For some reason that I don't fully understand, the 5701 signals PCS
encoding errors as though they were link change events, i.e. the 'link
state changed' bit in the status word of the status block is updated
and an interrupt is generated. This would cause the bge_tick() function
to be invoked and a "gigabit link up" message to be printed on the console.

To avoid this, the interrupt handler now checks the MAC status register
when a link change interrupt is triggered, and it will only call the
bge_tick() function if the 'PCS encoding error detected' bit is clear.
(This change should have no effect on copper NICs since this bit can
only ever be set in TBI mode. I do not know how it affects 5704 NICs
with a BCM8002 SERDES PHY.)

Special thanks to: Sherry Rogers at UCB for allowing me access to one
of their traffic monitor boxes so I could diagnose this problem.
2003-07-11 08:19:52 +00:00
Alexander Kabaev
cd2f2571d8 Fix i386 assembly constraints. The same register cannot be
in output and clobber lists at the same time.
2003-07-11 07:49:40 +00:00
Alexander Kabaev
360d2e3b61 Temporarily switch off -Werror until new GCC warning have been dealt with. 2003-07-11 07:13:42 +00:00
Alexander Kabaev
46b370ef71 Merge FreeBSD changes into GCC 3.3.1-prerelease.
Move FreeBSD specific flag variables from c-decl.c here.
2003-07-11 06:00:50 +00:00
Alexander Kabaev
8a50130bbb Do not compare unsigned int values with ULONG_MAX. The comparison is
always false on 64bit platforms and GCC 3.3.1 issues warning there.
2003-07-11 05:47:05 +00:00
Alexander Kabaev
e67810e696 Update bmake bits to build GCC 3.3.1-prerelease. 2003-07-11 05:37:23 +00:00
Alexander Kabaev
487ee93a17 Update for GCC 3.3.1-pre. 2003-07-11 05:33:24 +00:00
Alexander Kabaev
e9f8ce2eea Point to the new C++ include files location. 2003-07-11 05:30:58 +00:00
Alexander Kabaev
f2edfd7617 Update for new C++ include files layout. 2003-07-11 05:29:59 +00:00
Alexander Kabaev
4346430319 Add unwind-c.c file required for -fexceptions in C sources. 2003-07-11 05:29:11 +00:00
Alexander Kabaev
03ffe3192e Change CFLAGS to more closely follow options used when GCC is built
from stock FSF sources.
2003-07-11 05:27:23 +00:00
Alexander Kabaev
08cbb1d115 Temporarily turn off -Werror for these components. 2003-07-11 05:24:32 +00:00
Alexander Kabaev
22bf82941c Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.2 -fformat-extensions.
  1.3 -printf0
  1.6 teach GCC about %y for DDB.
2003-07-11 05:12:46 +00:00
Alexander Kabaev
fff64a6e53 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.3 suppress warnings on K&R main.

  Rev. 1.2 (options for kernel printf enhancements) changes have been
  moved to another
2003-07-11 05:11:14 +00:00
Alexander Kabaev
06432e3a6a Update for GCC 3.3.1-prerelease. 2003-07-11 05:09:19 +00:00
Alexander Kabaev
bec4705400 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.8 Change symbol values to match freebsd.h.
2003-07-11 05:05:45 +00:00
Alexander Kabaev
e815c3de60 Update for 3.3.1-prerelease. 2003-07-11 05:03:47 +00:00
Alexander Kabaev
aaa8c4b302 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.4 Look into right directory when linking 32-bit binaries.
2003-07-11 04:54:45 +00:00
Alexander Kabaev
31653fae42 Use stock version of this file now. 2003-07-11 04:52:32 +00:00
Alexander Kabaev
0f50cc1930 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.2	don't let gcc(1) hide warnings in system headers.
2003-07-11 04:49:30 +00:00
Alexander Kabaev
d5a10d25d8 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.2  -fformat-extensions.
  1.7  FORCE_OPTIMIZATION_DOWNGRADE knob for Alpha.
  1.14 -O0 -O1 optimize alignment for time, not size.
2003-07-11 04:48:05 +00:00
Alexander Kabaev
cf9a9a701d Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.{2,15}	FREEBSD_NATIVE.
  1.21		"GCC_OPTIONS".
  1.{16,25,27}	Cross-compiling issues.
2003-07-11 04:45:39 +00:00
Alexander Kabaev
b8edac44d5 Merge FreeBSD changes into GCC 3.3.1-prerelease:
1.2	Tweaks to make this file live beside our hacked config.
2003-07-11 04:43:01 +00:00
Alexander Kabaev
38ce1a2479 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.2	Localize the version string.
2003-07-11 04:37:16 +00:00
Alexander Kabaev
a4f4ed1ee5 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.8	printf format error fixes.
2003-07-11 04:34:52 +00:00
Alexander Kabaev
4b47e8ff24 Merge FreeBSD changes into GCC 3.3.1-prerelease:
1.2	Printf format errors fixes.
2003-07-11 04:32:20 +00:00
Alexander Kabaev
600d347e40 Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.11	-mno-align-long-strings.
2003-07-11 04:29:35 +00:00
Alexander Kabaev
27998756bd Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.10  -mno-align-long-strings.
  1.11  Allow the specification of LONG_TYPE_SIZE on the command line.
2003-07-11 04:28:01 +00:00
Alexander Kabaev
43bab0e092 Merge FreeBSD modifications into gcc 3.3.1-pre:
1.2	framework for our kernel printf enhancements.
  1.3	suppress prototype warnings on K&R main.
2003-07-11 04:24:59 +00:00
Alexander Kabaev
df07a219a0 Merge rev. 1.2 (allow profiling of FORTRAN77 programs) info GCC 3.3.1-pre
sources.
2003-07-11 04:03:28 +00:00
Alexander Kabaev
b2bcf6753d FreeBSD uses stock versions of these GCC files. 2003-07-11 04:00:23 +00:00
Alexander Kabaev
eb05e163fc This commit was generated by cvs2svn to compensate for changes in r117401,
which included commits to RCS files with non-trunk default branches.
2003-07-11 03:42:19 +00:00
Alexander Kabaev
6bdbd039fd Gcc 3.3.1-pre 2003-07-11 libf2c bits. 2003-07-11 03:42:19 +00:00
Alexander Kabaev
8653288799 This commit was generated by cvs2svn to compensate for changes in r117399,
which included commits to RCS files with non-trunk default branches.
2003-07-11 03:42:15 +00:00
Alexander Kabaev
63c14f51d5 Gcc 3.3.1-pre 2003-07-11 Objective C support bits. 2003-07-11 03:42:15 +00:00
Alexander Kabaev
9d66e2293b This commit was generated by cvs2svn to compensate for changes in r117397,
which included commits to RCS files with non-trunk default branches.
2003-07-11 03:42:04 +00:00
Alexander Kabaev
1b86b14eac Gcc 3.3.1-pre 2003-07-11 C++ support bits. 2003-07-11 03:42:04 +00:00
Alexander Kabaev
46c315278f This commit was generated by cvs2svn to compensate for changes in r117395,
which included commits to RCS files with non-trunk default branches.
2003-07-11 03:40:53 +00:00
Alexander Kabaev
bd0df3aa27 Gcc 3.3.1-pre as of 2003-07-11. 2003-07-11 03:40:53 +00:00
Brian Feldman
34b0f960ef If we must yell at the user than a file cannot be linked into place when
requested (not required) to do it, reassure them that cpio is still
intelligent enough that it will perform a full copy instead.
2003-07-11 02:19:19 +00:00
Marcel Moolenaar
0eb870194c This commit was generated by cvs2svn to compensate for changes in r117392,
which included commits to RCS files with non-trunk default branches.
2003-07-11 01:03:55 +00:00
Marcel Moolenaar
2884f2dcd8 Rename DISABLE_TRACE to UWX_TRACE_ENABLE and change the conditional
compilation accordingly. The net effect is that tracing is not by
default present and that it can easily be compiled-in.

The tracer uses getenv() and printf(), which cannot be used in all
cases (ie from the debugger) and with this change we improved the
applicability of the unwinder.

This change is made on the vendor branch and given back to the
vendor for possible inclusion in future versions.
2003-07-11 01:03:55 +00:00
Mike Silbersack
347194c172 Add init_param3() to subr_param. This function is called
immediately after the kernel map has been sized, and is
the optimal place for the autosizing of memory allocations
which occur within the kernel map to occur.

Suggested by:	bde
2003-07-11 00:01:03 +00:00
Thomas Moestl
928a49644f Lock down the IOMMU bus_dma implementation to make it safe to use
without Giant held.

A quick outline of the locking strategy:
Since all IOMMUs are synchronized, there is a single lock, iommu_mtx,
which protects the hardware registers (where needed) and the global and
per-IOMMU software states. As soon as the IOMMUs are divorced, each struct
iommu_state will have its own mutex (and the remaining global state
will be moved into the struct).
The dvma rman has its own internal mutex; the TSB slots may only be
accessed by the owner of the corresponding resource, so neither needs
extra protection.
Since there is a second access path to maps via LRU queues, the consumer-
provided locking is not sufficient; therefore, each map which is on a
queue is additionally protected by iommu_mtx (in part, there is one
member which only the map owner may access). Each map on a queue may
be accessed and removed from or repositioned in a queue in any context as
long as the lock is held; only the owner may insert a map.
To reduce lock contention, some bus_dma functions remove the map from
the queue temporarily (on behalf of the map owner) for some operations and
reinsert it when they are done. Shorter operations and operations which are
not done on behalf of the lock owner are completely covered by the lock.

To facilitate the locking, reorganize the streaming buffer handling;
while being there, fix an old oversight which would cause the streaming
buffer to always be flushed, regardless of whether streaming was enabled
in the TSB entry. The streaming buffer is still disabled for now, since
there are a number of drivers which lack critical bus_dmamp_sync() calls.

Additional testing by:	jake
2003-07-10 23:27:35 +00:00
Christian Brueffer
d18ff742dc -l prints all permissions, not just owner and group
PR:		54294
Submitted by:	Per Hedeland <per@hedeland.org>
MFC after:	3 days
2003-07-10 20:53:56 +00:00
Bill Paul
96fd5c300d Add support for the 8139C+ chipset. Unlike the other chips in the 8139
series, the 8139C+ has a descriptor-based DMA mechanism, and its
performance is actually pretty respectable. Note: the 8139D chip does
not support C+ mode. Only the 8139C+ and 8169 gigE chips support C+ mode.

Supported features:

- RX and TX checksum offload
- hardware VLAN tag insertion/extraction
- TX interrupt moderation using the 8139's on-board timer

Everything should be properly busdma'ed and endian-independent, so
things should work ok on non-x86 platforms. Unfortunately, my call
for testers on this code was met with deafening silence, and I don't
have access to any non-x86 FreeBSD boxes at the moment, so this is
speculation.

The device detection code has been cleaned up a little as well
(thanks to Michal Mertl) for the patches.

There are also updates to the rl(4) man page (which I accidentally
checked in before when I updated the dc(4) man page. Oops.)

Todo: finish support for the 8169 gigabit ethernet chip. This
mainly requires writing an rlgphy driver to handle the 8169's built-in
PHY. This will have to wait until I actually get my hands on an 8169
card for testing though. (I still can't find a source for one in the
U.S. Suggestions/pointers welcome.)
2003-07-10 20:38:48 +00:00
Bill Paul
e0b2dc9329 Regenerate. 2003-07-10 18:43:39 +00:00
Bill Paul
e7b9ab3aaa Add support for a bunch of Microsoft networking products:
- MN-110 10/100 USB ethernet (ADMtek Pegasus II, if_aue)
- MN-120 10/100 cardbus (ADMtek Centaur-C, if_dc)
- MN-130 10/100 PCI (ADMtek Centaur-P, if_dc)

Also update dc(4) man page to mention support for MN-120 and MN-130.
2003-07-10 18:43:17 +00:00
Mark Murray
c7b132c974 Protect lint(1) from a #error. 2003-07-10 18:05:02 +00:00
Nate Lawson
1f04e8f501 Rewrite much of the embedded controller driver.
* Always use polled mode.  The intr approach did not work for many
  controllers and required the hw.acpi.ec.event_driven workaround.
* Only use an edge (not level) triggered GPE handler
* Add sc->ec_mtx for locking operations to a single EC.  There were
  many race conditions earlier between an SCI event and EcRead/Write.
* Use 1 ms as the global lock timeout
* Only acquire global lock if _GLK != 0
* Update EcWaitEvent to use an incremental backoff delay in its
  poll loop.  Wait 50 ms max instead of 10.  Most ECs respond
  in < 5 us (50 us when heavily loaded).  However, some time out
  occasionally even with a 10 ms timeout.  For delays past 1 ms, use
  msleep instead of DELAY to give SCI interrupts a chance to occur.
* Add EcCommand to send a command and wait for the appropriate event.
* The hw.acpi.ec.event_driven tunable is no longer applicable and
  has been removed.

Ideas from:	Linux
2003-07-10 17:22:46 +00:00