| Age | Commit message (Collapse) | Author |
|
|
|
Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.
Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)
Remove unnecessary or redundant interface attributes where they're not
needed.
There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)
...and a sentinel value CFARG_EOL.
Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.
Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
|
|
and remove code to handle failures that can no longer happen.
|
|
Down with externs in .c!
|
|
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).
|
|
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
|
|
some other constants. These are provided by sys/param.h now.
|
|
|
|
requirement for this.
N.B. Still to do - move dump on ld to 64-bit disk addresses
|
|
for future device_t/softc spilt.
|
|
|
|
|
|
revision 1.10 of aacvar.h.
|
|
|
|
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
|
|
* Allocate commands on-demand.
* Update a bunch of constants and some structures.
* Use __attribute__ ((__packed__)) instead of __packed to be consistent.
* Support more commands for devices that can apparently handle them.
* Support a "new comm. interface" present in more recent Adaptec
firmware. This reduces the amount of PCI bus traffic in handling
commands.
* Support larger commands going to the adapter--if the adapter can
support them.
* Support 64-bit commands for archs where sizeof(bus_addr_t) > 4 and
for adapters that advertise SGMAP64.
* Handle the WINDOW4G option and NO4GB quirk by excluding 2G-4G window
unless we have the WINDOW4G capability without the NO4GB quirk.
* Ask the adapter more about its capabilities and try to use those if
they seem sane.
* Do our bus_dmamap_sync() inside dequeue_fib instead of following,
since we have the information that we need there.
* Provide access functions for some adapters that I haven't seen yet
(MIPS-based "Rocket" adapters). Not yet used.
|
|
Enable a few more bits in the I/O requested by ld and check for the fast
response bit when reading back from the queue.
Both changes come from reading the FreeBSD driver and testing on a Dell
CERC SATA controller.
|
|
system has. This has the (scary-because-we've-been-running-so-long-
without-it) commit message (for the first version of the change):
Tell the controller how much physical memory we have. Without this
there was a chance that our DMA regions would collide with the
memory window used by the cache on the controller. The result would
be massive data corruption. This seemed to mainly affect systems with
>2GB of memory.
|
|
* Include definitions of adapter-initiated fibs.
* Send aifs back to the adapter after we receive them.
* Use indexes instead of pointers in 32-bit hardware registers.
* If we get a message that there's a printf from the adapter, but we have
a NUL in the first character of the printf string, change the NUL to a
space.
|
|
|
|
|
|
- fix a couple of unused bugs
- no more -Wno-unused for i386
|
|
|
|
|
|
architectures). Part of PR kern/30456.
The binary object file on i386 confirmed to be exactly the same before
and after the change.
|
|
format replaced by explicit hexadecimal dump of the first 32 bytes of fip->data
|
|
standard scheme:
if (<configured> != <wildcard> && <configured> != <real>)
then fail
else
ask device match function
This is handled by config_stdsubmatch() now.
|
|
explicitely by a plain integer array
the length in now known to all relevant parties, so this avoids
duplication of information, and we can allocate that thing in
drivers without hacks
|
|
|
|
fix PR kern/30456 but fixes part of it.
|
|
- fix variable shadowing
- remove unneeded casts
|
|
|
|
with aif_get_mailbox(). Make it return uint32_t instead of 'int'.
* Add an AAC_GET_MAILBOX() macro and change AAC_GET_MAILBOXSTATUS() to use
that.
* Update the Dell PERC 2QC quirk code to use AAC_GET_MAILBOX instead of the
StrongARM-specific code. While StrongARM access is correct for that card,
it's a bad example of how to access the mailbox registers.
* Add the GETINFO command and use it to get and display the card's
supported options at a verbose level during attachment.
|
|
|
|
the monitor revision and adapter serial number at a "verbose" level.
Add the total adapter RAM at "normal" level.
|
|
warnings.
|
|
-convert submatch() style functions (passed to config_search() or
config_found_sm()) to the locator passing variants
-pass interface attributes in some cases
-make submatch() functions look uniformly as far as possible
-avoid macros which just hide cfdata members, and reduce dependencies
on "locators.h"
|
|
|
|
|
|
bzero out the sync command buffer when sending commands. This was causing
problems when enumerating multiple arrays.
|
|
|
|
|
|
|
|
that it's broken for that case.
|
|
it has a chance of working, though.
|
|
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
|
|
- implement SIMPLEQ_REMOVE(head, elm, type, field). whilst it's O(n),
this mirrors the functionality of SLIST_REMOVE() (the other
singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups
|
|
version being mis-reported.
|
|
servers. Based on the FreeBSD/OpenBSD versions.
|