| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
handler registration. The code is inherited from isa(4), but on the O2,
although some interrupt sources on CRIME are edge-triggered, all
the MACE interrupts are level-triggered.
From miod@
|
|
|
|
|
|
|
| |
addresses. While there, pave the way for BUS_DMA_64BIT (not working
yet).
Diff from miod@; OK dlg@
|
|
|
|
| |
initial diff from jasper@
|
| |
|
|
|
|
| |
such statements with it.
|
|
|
|
|
| |
bus_space_tag on sgi, but rather always provide at least a dummy asm("sync")
flavour. Saves a function pointer test at runtime.
|
|
|
|
|
|
|
|
|
|
|
| |
accessors or the byte-swapped accessors, depending upon the byteswap setting
of the device we are trying to attach.
This allows for the removal of byteswap knowledge from ioc(4) and iof(4)
drivers.
While there, build pci_chipset_t md structs by bcopy'ing a template and
filling the few runtime fields, instead of assigning every field of them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This mandatory function will get invoked in pci_probe_device(), and allows
a pci host driver to alter the pci_attach_args passed to a device when
attaching.
This function will also, if returning non-zero, cause the device to be
skipped completely during all the phases of the PCI device discovery
(i.e. ressource enumeration, ressource assignment, and actual attachment).
This particular feature is experimental and might be reverted in the future
(or the scope narrowed to device attachment only).
A dummy #define pci_probe_device_hook() 0 is added to all platforms except
sgi, where real functions (currently only returning 0) are added; real meat
will be added shortly.
Discussed at s2k11, no objection from the usual suspects.
|
|
|
|
|
|
|
| |
given pcitag_t configuration address space. Currently, all pci controllers
will return the usual 0x100 bytes of PCI configuration space, but this will
eventually change on PCIe-capable controlers.
ok kettenis@
|
|
|
|
| |
ok krw@ kettenis@
|
|
|
|
| |
the pci write buffers.
|
|
|
|
|
| |
and compare against them when attaching potential console drivers, to figure
out whether they indeed are acting are console devices or not.
|
|
|
|
|
| |
number the PCI bus they are on is connected to. Will be used shortly to help
the console device selection logic.
|
|
|
|
|
|
|
|
| |
specified in the kernel configuration file, but is provided by macebus(4)
as part of the child device attachment args, and provide both crime and
mace interrupt bitmasks; this allows us to only really enable interrupt
sources we care about, and to avoid invoking interrupt handler we don't need
to for the few mace interrupts multiplexed at the crime level.
|
| |
|
|
|
|
| |
Still unimplemented for now.
|
|
|
|
|
|
|
|
|
| |
Tested by myself, sthen, oga, kettenis, and jasper.
Input from sthen and jasper.
ok kettenis
(Manpage follows shortly.)
|
| |
|
|
|
|
| |
otherwise. Found the hard way by jasper@, playing with a bge card.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- do not use a stinking extent to track bus_space_map allocations, but
directly map in XKPHYS instead. What are 64 bit address spaces good for
if we still need to use TLB for that?
- provide proper resource management extents to the MI pci code, so that,
in turn, the cardbus code can reuse them instead of providing their own.
- use the whole 4GB address space window for PCI I/O resources, just
because we can.
- make sure no device can get assigned address zero in I/O space, because
this address triggers a PCI error.
|
|
|
|
|
|
|
|
|
|
| |
class systems. Tested on O2 and Origin 200 with wi@pcmcia and xl@cardbus,
using a Ricoh 5C475-based cbb(4) board.
acx@cardbus doesn't work reliably yet, so your mileage may vary until more
bugs are fixed.
Thanks to matthieu@ for lending me some cardbus devices for testing.
|
|
|
|
|
|
|
| |
The firmware messes up I/O BARs, so whack those back to 0, such that the MI
PCI code initializes on an as-needed basis.
ok miod@
|
|
|
|
|
|
|
|
|
|
| |
where the common part to all bus_dmamap_load*() functions is implemented in
in an internal load_buffer routine.
This allows the xbridge-specific dma code to only provide this function,
instead of three; and this also brings us a working bus_dmamap_load_uio()
on all supported sgi machines, which in turns make crpyto(4) devices really
work. Tested with hifn(4).
|
|
|
|
|
|
|
| |
per-pci_chipset_t function to perform actual resource allocation.
Add the necessary bits to macepcibr(4), and enable ppb(4) on O2 kernels now.
Joint effort with kettenis@
|
|
|
|
|
|
| |
configuration register; this allows the driver to select ultra speed, which
this particular hardware supports.
From Linux, ok kettenis@
|
|
|
|
|
|
| |
adressing (no problem since we only support 64-bit mode).
ok miod@, jsing@
|
|
|
|
| |
ok miod@
|
|
|
|
|
| |
these are completely unrelated as long as there is only one pci bus per
bridge.
|
| |
|
|
|
|
|
| |
endianness conversion on pci bridges.
ok deraadt@ jsing@
|
|
|
|
| |
developer documentation some time ago.
|
|
|
|
|
|
|
|
| |
inherited from OpenBSD/arc machines with ISA bus; mainbus children match on
device name and other hierarchies match on simplified locators.
As a bonus, attachment lines in dmesg will now print their locators.
ok jsing@
|
| |
|
| |
|
|
|
|
|
|
|
| |
for the cpu, contiguous from different bases for devices. This allows
memory above 256MB to be used with bus_dma (and we had really been lucky
with the first few large-memory builds).
Information about memory accesses taken from Linux.
|
|
|
|
|
|
|
|
| |
domain number such that we can distinguish between busses with the same bus
number that are behind different host bridges. Domains can be accessed by
using different device nodes.
ok deraadt@
|
|
|
|
|
|
|
|
|
|
| |
NULL for root PCI busses. For busses behind a bridge, it points to
a persistent copy of the bridge's pcitag_t. This can be very useful
for machine-dependent PCI bus enumeration code.
From NetBSD
ok grange@ kettenis@
|
|
|
|
|
| |
instead use a global flag, like some other architectures do. No functional
change.
|
| |
|
|
|
|
| |
ok pefo@
|
|
|
|
|
| |
Some function names made more unique.
Other changes for the upcoming Origin 200 support.
|
| |
|
| |
|
| |
|
| |
|
|
|