13 Commits

Author SHA1 Message Date
marcel
db2fee092e Check the sync operation. 2015-07-28 04:54:05 +00:00
marcel
05aa6fbdae o make sure the boundary is a power of 2, when not zero.
o   don't convert 0 to ~0 just so that we can use MIN. ~0 is not a
    valid boundary. Introduce BNDRY_MIN that deals with 0 values
    that mean no boundary.
2015-07-26 16:39:37 +00:00
marcel
f24cee01cd Check the hw.proto.attach environment variable for devices that
proto(4) should attach to instead of the normal driver.

Document the variable.
2015-07-19 23:37:45 +00:00
marcel
2c1d4a4ec1 Implement unload and sync operations. 2015-07-03 05:44:58 +00:00
marcel
33d849db59 Add create, destroy and load of memory descriptors. 2015-07-03 01:52:22 +00:00
marcel
909a9e6f9a Add an ISA/ACPI bus attachment to proto(4). 2015-07-02 19:21:29 +00:00
marcel
3cef8f432a Change the probe to what was intended: attach to devices with
a type 0 header and not to function 0 devices.
2015-06-22 00:34:29 +00:00
marcel
9b8cbbc6ed We need to handle 64-bit BARs ourselves to avoid that the
PCI infrastructure instantiates a non-existent resource.
This has BARs suddenly show up with pciconf(8) under
VMware as well.  Now that we read the BAR ourselves, ask
for the correct resource type.
2015-06-12 12:27:10 +00:00
marcel
433b540712 Load the allocated memory and return both the physical
address and the bus address to the application.
2015-06-10 22:33:56 +00:00
marcel
21b395f612 Implement mmap(2) for the busdma resource. 2015-06-08 21:47:44 +00:00
marcel
68d6c60168 Add DMA memory allocation and freeing.
Slightly rework the tag handling.
2015-06-08 03:00:36 +00:00
marcel
58f25d3df4 DMA support part 1: DMA tag create & destroy
Create a special resource (= device special file) for management
of tags and maps, as well as for mapping memory into the address
space. DMA resources are managed using the PROTO_IOC_BUSDMA ioctl.
Part 1 implements tag creation, derivation and destruction.
2015-06-06 16:09:25 +00:00
marcel
a57fca2a55 Add proto(4): A driver for prototyping and diagnostics.
It exposes I/O resources to user space, so that programs can peek
and poke at the hardware. It does not itself have knowledge about
the hardware device it attaches to.

Sponsored by:	Juniper Networks, Inc.
2014-04-28 17:58:40 +00:00