Commit Graph

41508 Commits

Author SHA1 Message Date
Marcel Moolenaar
29952636d3 Now that we can ignore up to 8KB of dirty registers, remove the RSE
magic from exec_setregs(). In set_mcontext() we now also don't have
to worry that we entered the kernel with more that 512 bytes of
dirty registers on the kernel stack. Note that we cannot make any
assumptions anymore WRT to NaT collection points in exec_setregs(),
so we have to deal with them now.
2003-08-10 08:04:21 +00:00
Warner Losh
8a0ef7be56 MF p4:
Minor style(9) nit.
2003-08-10 03:47:29 +00:00
Bill Paul
aadef91a54 Grrr. There is a gratuitous difference in the RX descriptor status
word between the 8139C+ and the 8169. The 8139C+ has a 'frame alignment
error bit' (bit 27) but the 8169 does not. Rather than simply mark this
bit as reserved, RealTek removed it completely and shifted the remaining
status bits one space to the left. This was causing rl_rxeofcplus()
to misparse the error and checksum bits.

To workaround this, rl_rxeofcplus() now shifts the rxstat word one
bit to the right before testing any of the status bits (but after
the frame length has been extracted).
2003-08-10 02:41:18 +00:00
Warner Losh
2724f3214d Some bridges, like o2 micro and maybe ricoh, have some issues between
the time the card is inserted and the time that the card is
configured.  This can lead to interrupt storms.  The O2Micro suggested
workaround is to route the card function interrupt to IRQ1.  It
appears from my testing that this is an acceptable workaround for most
chipsets (there's still some issue with the ricoh chipset).

Also, only look at the NOT_A_CARD bit when the bridge tells us there's
a card present.  At least one test caused this to be true after the
card was removed, but the author couldn't recreate it with the
workaround in place.  The change is more conservative than the
previous code, but still has the work around that wasn't present in
the older code.
2003-08-10 02:40:49 +00:00
Bill Paul
f6bb113e42 - Update some comments regarding hardware details of the 8169 and
note the existence of the 8169S and 8110S components. (The 8169
  is just a MAC, the 8169S and 8110S contain both a MAC and PHY.)

- Properly handle list and buffer addresses as 64-bit. The RX and
  TX DMA list addresses should be bus_addr_t's. Added RL_ADDR_HI()
  and RL_ADDR_LO() macros to obtain values for writing into chip
  registers.

- Set a slightly different TIMERINT value for 8169 NICs for improved
  performance.

- Change left out of previous commit log: added some additional
  hardware rev codes for other 10/100 chips and for the 8169S/8110S
  'rev C' gigE MACs.
2003-08-10 01:41:35 +00:00
David E. O'Brien
96e934df56 Re-enable pcfclock in the build. 2003-08-10 01:35:36 +00:00
Bill Paul
ca3f4fd0a9 Silence unwanted 'gigabit link up' messages: do not treat the
BGE_MACSTAT_MI_COMPLETE bit in the MAC status register as a link
change indicator. We turn this bit on now because some of the newer
chips need it, but it usually just means that reading/writing
an MII/GMII register has completed, not that a link change has
occured.
2003-08-10 01:32:16 +00:00
Jake Burkholder
2974095528 Use get_mcontext in sendsig and set_mcontext in sigreturn instead of
frobbing things directly.
2003-08-09 23:14:33 +00:00
Scott Long
fc3e87b367 Don't provide a mutex in the S/G list dma tag since it will never be defered.
Fix some nearby style.
2003-08-09 23:07:21 +00:00
Warner Losh
fda5b6124b Add code to cope more with strange conditions after careful study of
the standard.

1) When the bridge tells us that we have a card that isn't recognized, we
   use the force register to force the CV_TEST to run.  This test causes the
   bridge to re-evaluate the card.  Once this re-evaluation process happens,
   we get a new interrupt that may say it is ready to process.  We try this up
   to 20 times.  Tests have shown that this appears to correctly reset the
   'Unknown card type' problem that I saw on my Sony PCG-505TS.
2) Take a page from OLDCARD and always read the CSC register in the ISR.
   Some TI (and it seems maybe Ricoh) chipsets require this to behave
   properly.  This work around appears to work due to some power management
   protocols that were improperly implemented.  Maybe it can be removed when
   this driver supports the full PME# protocol described in the standards.
3) Minor additional debug printf when debugging is enabled.
4) Minor additional commentary for things that are obvious only after study.

# I'm committing this from my Sony PCG-505TS using shared PCI interrupts
# and NEWCARD, but there are some issues with the Ricoh bridge still, but
# at least now I can boot with the card inserted and have it work.
2003-08-09 21:05:54 +00:00
Warner Losh
71ed0ee3da CBB_SOCKET_STAT_ is too long. Change it to CBB_STATE_. Also, make
some minor changes to more closely match the bit names used in the 7.0
version of the PCMCIA standard.  Also add bits from the FORCE
register.
2003-08-09 20:49:22 +00:00
Warner Losh
69a7c91e70 When allocating memory, align it to the minimum alignment required for
cardbus bridges if the alignment requirements were less restrictive.
2003-08-09 20:38:53 +00:00
Warner Losh
da57cf7c7e Add comments about some alignment that looks a little strange. 2003-08-09 20:33:53 +00:00
Warner Losh
e3bf57b6c9 Minor fixes to a couple of comments. 2003-08-09 20:31:25 +00:00
Alan Cox
c6eb850aac Background: When proc_rwmem() wired and mapped a page, it also added
a reference to the containing object.  The purpose of the reference
being to prevent the destruction of the object and an attempt to free
the wired page.  (Wired pages can't be freed.)  Unfortunately, this
approach does not work.  Some operations, like fork(2) that call
vm_object_split(), can move the wired page to a difference object,
thereby making the reference pointless and opening the possibility
of the wired page being freed.

A solution is to use vm_page_hold() in place of vm_page_wire().  Held
pages can be freed.  They are moved to a special hold queue until the
hold is released.

Submitted by:	tegge
2003-08-09 18:01:19 +00:00
Scott Long
588920f14e Call bus_dmamap_create() to create the per-SRB buffer maps. Note that none
of the SRB resources are freed when the driver unloads; maybe that will be
tackled another day.
2003-08-09 15:16:45 +00:00
Mike Silbersack
7ab9842a99 Also ifdef the variable which becomes unused w/o INET6, fixing the build
after the previous commit.

Noticed by:	alc
2003-08-09 05:44:00 +00:00
Bruce M Simpson
662d85d6a2 Add the POSIX 1003.1-2001 posix_madvise() interface.
PR:		standards/54634
Reviewed by:	das
Approved by:	jake (mentor)
2003-08-09 03:23:24 +00:00
Mike Silbersack
fe3e8c5167 #ifdef INET6 the if_loop packet defrag; since only the ipv6 stack (might)
require this to be done, there's no reason to waste time doing it if
ipv6 isn't compiled in.

MFC after:	1 week
2003-08-09 02:55:11 +00:00
Marcel Moolenaar
6098c5e1a2 Add the PCI Id of the Intersil prism3 (mini-PCI) WLAN chip. The Vaio
PCG-505BX (for example) has one of those:

wi0: <Intersil Prism3> mem 0xf8000000-0xf8000fff at device 2.0 on pci2
wi0: 802.11 address: 00:02:8a:94:d8:73
wi0: using RF:PRISM3(Mini-PCI)
wi0: Intersil Firmware: Primary (1.1.1), Station (1.5.6)
wi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
2003-08-08 23:33:42 +00:00
Matthew N. Dodd
654d06941b Initialize bp->bio_driver1 in idad_strategy().
Removed by accident in 1.38.

This fixes the trap 12 everyone was seeing in ida_construct_qcb().

PR:		 kern/53245
2003-08-08 23:01:12 +00:00
Alan Cox
9c62fce085 - Remove GIANT_REQUIRED from pipespace().
- Remove a duplicate initialization from pipe_create().
2003-08-08 22:38:15 +00:00
Daniel Eischen
ab908f5935 Copyin the thread mailbox flags from the correct location
in the mailbox.
2003-08-08 20:23:10 +00:00
Yoshihiro Takahashi
cbb06fd60c MFi386: revision 1.201. 2003-08-08 12:45:42 +00:00
Nate Lawson
bf0c18ec43 Default to 5 seconds before sleeping to give some machines time to stabilize.
This doesn't break anything on my laptop and some claim it helps them.
2003-08-08 03:19:22 +00:00
Alan Cox
7fbff95c04 MFi386 1.422 & 1.423: lock page queues in pmap_insert_entry(). 2003-08-08 01:52:03 +00:00
Marcel Moolenaar
f8e1f6d036 MFi386 1.422 & 1.423: lock page queues in pmap_insert_entry(). 2003-08-08 00:30:26 +00:00
Bill Fumerola
2766bd022f 0) preallocate per-interface context structures without the ifnet lock held
1) avoid immediately calling bzero() after malloc() by passing M_ZERO
2) do not initialize individual members of the global context to zero
3) remove an unused assignment of ifctx in bootpc_init()

Reviewed by:	tegge
2003-08-07 21:27:17 +00:00
Warner Losh
42967c7c5f Add MELCO LPC3_CTX. This is the same as Buffalo card of the same name
with different vendor id.

Submitted by: Shizuka Kudo-san
2003-08-07 19:40:05 +00:00
Warner Losh
07dbfcd9cd Sync to 1.62 of pccarddevs 2003-08-07 19:36:06 +00:00
Warner Losh
b03ea4feee MELCO has a similar product to Buffalo LPC3-CLX: named the same and
has the same product id, but different vendor id.  It also appears
that the MELCO's id should be 0x18a instead of 0x8a01.  Fix this.

Submitted by: Shizuka Kudo-san
2003-08-07 19:33:11 +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
Andrew Gallatin
c8aacbdaa8 MFI386: Acquire the page queues lock in pmap_insert_entry(), from
i386/i386/pmap.c 1.423
2003-08-07 18:35:16 +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
0eb1dbb16e This commit was generated by cvs2svn to compensate for changes in r118624,
which included commits to RCS files with non-trunk default branches.
2003-08-07 18:19:12 +00:00
Nate Lawson
ade9d6fdcf Fix a bug that would result in a very long sleep. Change has been
submitted to the vendor.

Obtained from:	iwasaki
2003-08-07 18:19:12 +00:00
Jeffrey Hsu
59ca77f4a1 New PIM header files.
Submitted by:	Pavlin Radoslavov <pavlin@icir.org>
2003-08-07 18:17:43 +00:00
Jeffrey Hsu
1e78ac216e 1. Basic PIM kernel support
Disabled by default. To enable it, the new "options PIM" must be
added to the kernel configuration file (in addition to MROUTING):

options	MROUTING		# Multicast routing
options	PIM			# Protocol Independent Multicast

2. Add support for advanced multicast API setup/configuration and
extensibility.

3. Add support for kernel-level PIM Register encapsulation.
Disabled by default.  Can be enabled by the advanced multicast API.

4. Implement a mechanism for "multicast bandwidth monitoring and upcalls".

Submitted by:	Pavlin Radoslavov <pavlin@icir.org>
2003-08-07 18:16:59 +00:00
John Baldwin
b2db7dc658 td_dupfd just needs to be less than 0, it does not have to hold the
negative value of the index of the new file, so just use -1.
2003-08-07 17:08:26 +00:00
Nate Lawson
c7fe6a7bfb Import the userland interface from acpica 0619 2003-08-07 16:59:44 +00:00
Nate Lawson
65782e561a This commit was generated by cvs2svn to compensate for changes in r118617,
which included commits to RCS files with non-trunk default branches.
2003-08-07 16:59:44 +00:00
Jacques Vidrine
01b9dc96e3 Update some argument-documenting comments to match reality.
Add an explicit range check to those same arguments to reduce risk of
cardiac arrest in future code readers.
2003-08-07 16:42:27 +00:00
Nate Lawson
59db4265c5 Import common/ files from acpica 0619 2003-08-07 16:38:54 +00:00
Nate Lawson
64f80a8302 This commit was generated by cvs2svn to compensate for changes in r118613,
which included commits to RCS files with non-trunk default branches.
2003-08-07 16:38:54 +00:00
Nate Lawson
53289f6a61 Import compiler/ files from acpica 0619 2003-08-07 16:38:31 +00:00
Nate Lawson
b9361fabdb This commit was generated by cvs2svn to compensate for changes in r118611,
which included commits to RCS files with non-trunk default branches.
2003-08-07 16:38:31 +00:00
Nate Lawson
22d162d7d1 Remove the user include of ctype.h and instead include it for each utility
that uses strupr().
2003-08-07 15:52:42 +00:00
Nate Lawson
327f90d8cc Remove nowerror from some files that no longer generate warnings. 2003-08-07 15:51:35 +00:00
John Baldwin
8b149b5131 Consistently use the BSD u_int and u_short instead of the SYSV uint and
ushort.  In most of these files, there was a mixture of both styles and
this change just makes them self-consistent.

Requested by:	bde (kern_ktrace.c)
2003-08-07 15:04:27 +00:00
Nate Lawson
c53bcc89ca Null terminate the OEM hint. This rids my laptop of the smiley face that
would follow the 6 valid chars of the table entry.
2003-08-07 14:53:14 +00:00