tested on any other platform other than i386. Use of bus_dma(9) can be
turned by defining TULIP_BUS_DMA_NOTX and TULIP_BUS_DMA_NORX. These allow
one to determine if the problem is in the transmit or receive path.
A problem reported by mycroft is also fixed.
- Fall back on i/o space if mem space isn't available.
- Card reports mem space as prefetchable, but mapping the card into dense
space fails in nasty ways on the Alpha. Force mapping into sparse
space by clearing the BUS_SPACE_MAP_CACHEABLE bit (XXX!).
nullbuf (used to pad packets < ETHER_MIN_SIZE) is used for all tl
interfaces. Allocates only once, and never deallocate it (as we can't say
if another instance of the driver is interface is using it).
i/o-mapped space to always be used), we discover that at least one
ThunderLAN interface can't read the EEPROM properly if memory-mapped
access is used. Kludge around this for now by "prefering" i/o space.
- Do PCI space configuration like the other drivers. In particular,
don't _disable_ the space we're not using because some lame firmware
implementations might not reenable it on warm boot. Also, prefer
memory space always.
- Make match and info-gathering in attach table-driven.
- Rearrange things a bit to be a bit more visually pleasing during boot.
Also, fixup some #include problems.
- Work around a bug in the 82557 that causes the receiver to lock up
in certain conditions by kicking the multicast address filter if we
haven't heard anything come down the wire for some period of time.
- Fix a bug that could cause TxCB descriptor chains to cross page boundaries
on the Alpha.
- Remove some unneeded register masking.
- Fix a bug where too much data was copied from the config template, causing
memory corruption.
- Fix handing of if_timer (it was be cleared too early in some cases).
- Attempt to reduce the chances of receiver overrun by doubling the
number of receive DMA segments, and processing receive interrupts
before transmit interrupts.
- Remove a gratuitous assignment.
- Fix a bug where incoming packets were counted twice.
pseudo-device rnd # /dev/random and in-kernel generator
in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include
that this code is derived in part from Ted Tyso's linux code.
Add newer Intel / VIA i386 chipsets.
Correct one S3 chip, add one.
Mostly from Carl Shapiro <css@samsara.dialup.access.net> per PR kern/4169
and kern/4170 (identical).
memory-mapped or i/o-mapped access to the device registers, and always
choose memory-mapped if it is enabled. In particular, do _not_ explictly
disable the space we decide to not use, as this confuses some versions
of Alpha console software (which are arguably buggy because of this
problem).
Also, fix a logic error pointed out by Ross Harvey <ross@teraflop.com>
that would cause memory-mapped access to never be enabled.
pci_map_mem(), with appropriate changes for bus_space.
* Add extra arguments for use by pci_mapreg_*(), and make the functions
static.
* Rewrite pci_mapreg_info() and pci_mapreg_map() as wrappers around
pci_*_find(), using the documented interface.
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
able to read SXP registers (instead of panicing). Probably have done a bit
of setup overkill- we now alloc some scratch memory for the 2100 that I thought
I would need for the Port database, but so far I haven't needed to retrieve
the port database. Well, early days yet.
call for the board's memory space to be PCI_MAPREG_MEM_TYPE_32BIT_1M or
PCI_MAPREG_MEM_TYPE_32BIT depending on the board ID. Also, remove a
bogus extra argument to an interrupt-establishment-error printf. Problems
pointed out by Jarkko Torppa <torppa@cute.fi> in PR 3753, but fixed slightly
differently than he suggested.
- Add NetBSD autoconfiguration support.
- Rearrange code slightly to minimize the number of #ifdefs.
- Don't use a structure to access CSRs. Use macros that DTRT for
the NetBSD and FreeBSD cases.
- Deal with alignment contraint on Alpha - add 2-byte padding at the
beginning of the RFA, so that the data will be 4-byte aligned, after
the 14-byte Ethernet header.
Thanks to Matthias Drochner for the testing, and David Greenman for
the feedback on the changes.
by default if it's usable, but falling back to I/O space if mem isn't usable.
If NCR_IOMAPPED is defined (default on the x86), prefer I/O space
then fall back to mem. Also, clean up the various memory consistency checks
so that they can deal with run-time determination of whether or not the
device is to be memory- or I/O-mapped.
by default if it's usable, but falling back to I/O space if mem isn't usable.
If TULIP_IOMAPPED is defined (default on the x86), prefer I/O space
then fall back to mem.
mapping register, maps it, and returns all of the relevant information.
deprecate use of pci_{io,mem}_find(), but leave them around (for a while)
for backward compatibility with third-party drivers.
arguments, so that a device can tell if its memory and I/O spaces are
enabled. The flags are cleared, depending on the contents of devices CSR
registers, in the machine-independent PCI bus code.
this code makes equal sense for memory and I/O space, prefer to map
the PCI front end via memory space (conditionalized on a patchable kernel
variable), and do a bit of other random NetBSD-specific cleanup. (These
changes were sent to Justin Gibbs on March 28.)