gibbs [Tue, 17 Aug 2004 00:14:31 +0000 (00:14 +0000)]
Add an ISA attachement to the aic7xxx driver to handle 284X controllers.
The ISA probe uses an identify routine to probe all slot locations from
1 to 14 that do not conflict with other allocated resources. This required
making aic7770.c part of the driver core when compiled as a module.
aic7xxx.c:
aic79xx.c:
aic_osm_lib.c:
Use aic_scb_timer_start() consistently to start the watchdog timer.
This removes a few places that verbatum copied the code in
aic_scb_timer_start().
During recovery processing, allow commands to still be queued to
the controller. The only requirement we have is that our recovery
command be queued first - something the code already guaranteed.
The only other change required to make this work is to prevent
timers from being started for these newly queued commands.
marius [Mon, 16 Aug 2004 23:23:21 +0000 (23:23 +0000)]
- Sync whitespace and comments with i386 GENERIC.
- Add some commented out NICs from i386 GENERIC. Most of them look like they
would work but I'm not sure if they are endian-clean and can't test. There
was a report that sk(4) works on sparc64 but it doesn't look like it would
because it doesn't use busdma.
- Improve some of the descriptions of sparc64 specific devices.
There's no functional change, i.e. no added or deleted uncommented devices or
options, in this commit.
marius [Mon, 16 Aug 2004 23:21:06 +0000 (23:21 +0000)]
Try to catch up with reality:
- Chase the split of pcm(4). This unbreaks LINT compiles.
- sc(4) basically works and a lot of its options should be supported.
- Add the creator and ofw_console drivers.
- vinum(4) should work, at least its module was turned on for sparc64 a while
ago.
- Don't build sio(4). Its EBus front-end was removed a while ago and the ISA
one hardly works. Use uart(4) instead, it's not perfect yet but works much
better.
thomas [Mon, 16 Aug 2004 22:41:58 +0000 (22:41 +0000)]
Properly identify the root filesystem to be used in /etc/fstab in each
slice of the flash card, ensuring that the loader will mount the root fs
from the booted slice by default.
Allow usage of FFS volume labels instead of hardcoded device names through
WITH_GEOM_VOL Makefile knob.
mbr [Mon, 16 Aug 2004 22:35:56 +0000 (22:35 +0000)]
Make 'client DNS forward update' working again which got broken in rev.
RC9 of dhclient 3.0.1. This fix will be part of dhclient 3.0.2. It is
also part of the official redhat package.
Submitted by: Jason Vas Dias <jvdias@redhat.com>
Discussed on: dhcp-hackers@isc.org
arun [Mon, 16 Aug 2004 22:09:58 +0000 (22:09 +0000)]
The existing code fails some corner cases. Replace it with
ia64_bsp_adjust() which has been tested to work in all cases for
arbitrary (bsp, nslots) combinations.
gibbs [Mon, 16 Aug 2004 22:05:53 +0000 (22:05 +0000)]
Remove outb to "prime" the EISA ID registers of each slot. This was
only required to support probing of the Adaptec 284X VLB SCSI controller
which becomes visible in EISA space if you perform these writes. 284X
probing is moving to an ISA attachment.
gibbs [Mon, 16 Aug 2004 21:55:29 +0000 (21:55 +0000)]
Modify the "legacy bus" to pass all resource allocations through to its
parent rather than track resources locally. The original code
was incomplete in that it would only honor requests for resources
that already exist in its resource list. This prevented many ISA
identify routines from allocating temporary resources. Passing
the requests up to legacy's parent losing no functionality and
allows these requests to succeed.
mbr [Mon, 16 Aug 2004 21:26:04 +0000 (21:26 +0000)]
Recommit removed Rev. 1.40. This fix does solve a FPE with negative lease
time as described in the PR below.
It seems that this patch should have been part of the vendor tree but got
accidently missed in the 3.0.1 final version. It will definitly be
part of 3.0.2 but until then it's a long way to go.
marcel [Mon, 16 Aug 2004 20:33:20 +0000 (20:33 +0000)]
We now handle SSDT tables. Remove a reference from the BUGS section
and explicitly mention SSDT when we talk about the DSDT so that people
don't have to guess whether it includes the SSDT.
While here, touch date.
marcel [Mon, 16 Aug 2004 18:54:23 +0000 (18:54 +0000)]
Catch up with the drive-by renaming of IA32 to COMPAT_IA32. It must
have been rush hour...
While here, move COMPAT_IA32 from opt_global.h to opt_compat.h like on
amd64. Consequently, it's unsafe to use the option in pcb.h. We now
unconditionally have the ia32 specific registers in the PCB.
wpaul [Mon, 16 Aug 2004 18:50:20 +0000 (18:50 +0000)]
Make the Texas Instruments 802.11g chipset work with the NDISulator.
This was tested with a Netgear WG311v2 802.11b/g PCI card. Things
that were fixed:
- This chip has two memory mapped regions, one at PCIR_BAR(0) and the
other at PCIR_BAR(1). This is a little different from the other
chips I've seen with two PCI shared memory regions, since they tend
to have the second BAR ad PCIR_BAR(2). if_ndis_pci.c tests explicitly
for PCIR_BAR(2). This has been changed to simply fill in ndis_res_mem
first and ndis_res_altmem second, if a second shared memory range
exists. Given that NDIS drivers seem to scan for BARs in ascending
order, I think this should be ok.
- Fixed the code that tries to process firmware images that have been
loaded as .ko files. To save a step, I was setting up the address
mapping in ndis_open_file(), but ndis_map_file() flags pre-existing
mappings as an error (to avoid duplicate mappings). Changed this so
that the mapping is now donw in ndis_map_file() as expected.
- Made the typedef for 'driver_entry' explicitly include __stdcall
to silence gcc warning in ndis_load_driver().
NOTE: the Texas Instruments ACX111 driver needs firmware. With my
card, there were 3 .bin files shipped with the driver. You must
either put these files in /compat/ndis or convert them with
ndiscvt -f and kldload them so the driver can use them. Without
the firmware image, the NIC won't work.
mbr [Mon, 16 Aug 2004 16:09:50 +0000 (16:09 +0000)]
It could happen that the renew/rebind times in the leasefile were
expired but the expire time itself was still valid and in the future.
If this happened we ended up using the state S_RENEW with an
INADDR_BROADCAST address set in the request and dhclient never got
any answer back. The only workaround was to delete the lease file.
Fix this case with a check for the S_RENEW and a fallback to the
S_INIT state.
PR: bin/69361
Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
imp [Mon, 16 Aug 2004 15:57:18 +0000 (15:57 +0000)]
Some cards don't have the info entries in the CIS, so vendorstr and/or
prodstr may be NULL when fetched. For the default device description,
guard against this and return the numeric IDs instead when this
happens. For the matching routines, and consider NULL to not match
those entries that aren't NULL w/o calling strcmp.
kan [Mon, 16 Aug 2004 15:01:22 +0000 (15:01 +0000)]
Upgrading a lock does not play well together with acquiring an exclusive lock
and can lead to two threads being granted exclusive access. Check that no one
has the same lock in exclusive mode before proceeding to acquire it.
The LK_WANT_EXCL and LK_WANT_UPGRADE bits act as mini-locks and can block
other threads. Normally this is not a problem since the mini locks are
upgraded to full locks and the release of the locks will unblock the other
threads. However if a thread reset the bits without obtaining a full lock
other threads are not awoken. Add missing wakeups for these cases.
PR: kern/69964
Submitted by: Stephan Uphoff <ups at tree dot com>
Very good catch by: Stephan Uphoff <ups at tree dot com>
tjr [Mon, 16 Aug 2004 14:18:22 +0000 (14:18 +0000)]
Store a pointer to "null" in struct ndblock's defn member instead of a
duplicate allocated on the heap; the address defn points to is significant,
and is checked against the address of "null" in certain conditionals.
obrien [Mon, 16 Aug 2004 11:09:59 +0000 (11:09 +0000)]
I'm not sure what tjr envisioned for turning on FreeBSD/i386 rt support,
but make it COMPAT_IA32 for now.
Fix the 'DEBUG' argument code to unbreak the amd64 LINT build.
simon [Mon, 16 Aug 2004 10:49:45 +0000 (10:49 +0000)]
Remove Wiretek UBRJ4 from the list of supported devices. While it is
detected by the driver, it doesn't really work as soon as it really used
for network traffic. Perhaps it can be re-added later when the issues
are resolved.
dwmalone [Mon, 16 Aug 2004 10:00:44 +0000 (10:00 +0000)]
When looking for some extra data to include in the hash, use the
address of the dirhash, rather than the first sizeof(struct dirhash
*) bytes of the structure (which, thankfully, seem to be constant).
dwmalone [Mon, 16 Aug 2004 09:38:34 +0000 (09:38 +0000)]
Improve MIME handling. This patch is based on Eugene's patch, but
with the following changes:
1) Don't make a mime_types.h 'cos we should avoid creating variables
in header files,
2) Use strrchr to find the extension, rather than strchr,
3) Slightly simplify the mime-type matching loop.
any goof are likely to be mine. Note that there are links to more
improvements by Eugene in the PR.
tjr [Mon, 16 Aug 2004 08:19:18 +0000 (08:19 +0000)]
Add support for 32-bit Linux binary emulation on amd64:
- include <machine/../linux32/linux.h> instead of <machine/../linux/linux.h>
if building with the COMPAT_LINUX32 option.
- make minimal changes to the i386 linprocfs_docpuinfo() function to support
amd64. We return a fake CPU family of 6 for now.
tjr [Mon, 16 Aug 2004 07:55:06 +0000 (07:55 +0000)]
Add preliminary support for running 32-bit Linux binaries on amd64, enabled
with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux
emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32
binary emulation work.
Some of this is still a little rough around the edges, and will need to be
revisited before 32-bit and 64-bit Linux emulation support can coexist in
the same kernel.
alfred [Mon, 16 Aug 2004 07:51:22 +0000 (07:51 +0000)]
This patch merges the sort fields for both pages, so you can (for
example) view io stats while sorting by process size. Also adds
voluntary and involuntary context-switch stats to the io page because
there was lots of room.
Submitted by: Dan Nelson dnelson at allantgroup.com
tjr [Mon, 16 Aug 2004 07:28:16 +0000 (07:28 +0000)]
Changes to MI Linux emulation code necessary to run 32-bit Linux binaries
on AMD64, and the general case where the emulated platform has different
size pointers than we use natively:
- declare certain structure members as l_uintptr_t and use the new PTRIN
and PTROUT macros to convert to and from native pointers.
- declare some structures __packed on amd64 when the layout would differ
from that used on i386.
- include <machine/../linux32/linux.h> instead of <machine/../linux/linux.h>
if compiling with COMPAT_LINUX32. This will need to be revisited before
32-bit and 64-bit Linux emulation support can coexist in the same kernel.
- other small scattered changes.
tjr [Mon, 16 Aug 2004 07:05:44 +0000 (07:05 +0000)]
Add a new type, l_uintptr_t, which is an unsigned integer type with the
same width as a pointer under Linux. Add two new macros, PTRIN and PTROUT,
which convert between l_uintptr_t and native pointers.