History log of /freebsd/sys/dev/pci/pci_pci.c (Results 176 – 200 of 319)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# cfdfd32d 26-Jun-2011 Attilio Rao <attilio@FreeBSD.org>

MFC


# 0dbe859d 24-Jun-2011 John Baldwin <jhb@FreeBSD.org>

Split out host_pcib_get_busno() from the generic PCI-PCI bridge driver to
start a new file that will hold utility APIs used by various Host-PCI
bridge drivers and drivers that provide PCI domains.


# b8764e51 13-Jun-2011 Attilio Rao <attilio@FreeBSD.org>

MFC


# a49dcb46 10-Jun-2011 John Baldwin <jhb@FreeBSD.org>

Fix some off-by-one errors with the ending address of candidate regions
when attempting to grow a window.


# 94ebcddd 03-May-2011 Attilio Rao <attilio@FreeBSD.org>

MFC


# 83c41143 03-May-2011 John Baldwin <jhb@FreeBSD.org>

Reimplement how PCI-PCI bridges manage their I/O windows. Previously the
driver would verify that requests for child devices were confined to any
existing I/O windows, but the driver relied on the f

Reimplement how PCI-PCI bridges manage their I/O windows. Previously the
driver would verify that requests for child devices were confined to any
existing I/O windows, but the driver relied on the firmware to initialize
the windows and would never grow the windows for new requests. Now the
driver actively manages the I/O windows.

This is implemented by allocating a bus resource for each I/O window from
the parent PCI bus and suballocating that resource to child devices. The
suballocations are managed by creating an rman for each I/O window. The
suballocated resources are mapped by passing the bus_activate_resource()
call up to the parent PCI bus. Windows are grown when needed by using
bus_adjust_resource() to adjust the resource allocated from the parent PCI
bus. If the adjust request succeeds, the window is adjusted and the
suballocation request for the child device is retried.

When growing a window, the rman_first_free_region() and
rman_last_free_region() routines are used to determine if the front or
end of the existing I/O window is free. From using that, the smallest
ranges that need to be added to either the front or back of the window
are computed. The driver will first try to grow the window in whichever
direction requires the smallest growth first followed by the other
direction if that fails.

Subtractive bridges will first attempt to satisfy requests for child
resources from I/O windows (including attempts to grow the windows). If
that fails, the request is passed up to the parent PCI bus directly
however.

The PCI-PCI bridge driver will try to use firmware-assigned ranges for
child BARs first and only allocate a "fresh" range if that specific range
cannot be accommodated in the I/O window. This allows systems where the
firmware assigns resources during boot but later wipes the I/O windows
(some ACPI BIOSen are known to do this) to "rediscover" the original I/O
window ranges.

The ACPI Host-PCI bridge driver has been adjusted to correctly honor
hw.acpi.host_mem_start and the I/O port equivalent when a PCI-PCI bridge
makes a wildcard request for an I/O window range.

The new PCI-PCI bridge driver is only enabled if the NEW_PCIB kernel option
is enabled. This is a transition aide to allow platforms that do not
yet support bus_activate_resource() and bus_adjust_resource() in their
Host-PCI bridge drivers (and possibly other drivers as needed) to use the
old driver for now. Once all platforms support the new driver, the
kernel option and old driver will be removed.

PR: kern/143874 kern/149306
Tested by: mav

show more ...


# 7be8a2de 02-May-2011 Attilio Rao <attilio@FreeBSD.org>

MFC @ r221324


# d2c9344f 02-May-2011 John Baldwin <jhb@FreeBSD.org>

Add implementations of BUS_ADJUST_RESOURCE() to the PCI bus driver,
generic PCI-PCI bridge driver, x86 nexus driver, and x86 Host to PCI bridge
drivers.


Revision tags: release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0
# 0c21a60c 05-Dec-2010 Marcel Moolenaar <marcel@FreeBSD.org>

svn+ssh://svn.freebsd.org/base/head@216199


# 1e7a698a 25-Nov-2010 Dimitry Andric <dim@FreeBSD.org>

Sync: merge r215709 through r215824 from ^/head.


# 9d763248 25-Nov-2010 John Baldwin <jhb@FreeBSD.org>

Add device IDs for two more ServerWorks Host-PCI bridges so that we can
read their starting PCI bus number for older systems that do not support
ACPI (or have a broken _BBN method).

PR: kern/148108

Add device IDs for two more ServerWorks Host-PCI bridges so that we can
read their starting PCI bus number for older systems that do not support
ACPI (or have a broken _BBN method).

PR: kern/148108
MFC after: 1 week

show more ...


# 6f3544cd 26-Oct-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Merge svn+ssh://svn.freebsd.org/base/head@214309


# 19fe8e84 22-Oct-2010 Dimitry Andric <dim@FreeBSD.org>

Sync: merge r214077 through r214219 from ^/head.


# f3e0b109 20-Oct-2010 Jung-uk Kim <jkim@FreeBSD.org>

Introduce a new tunable 'hw.pci.do_power_suspend'. This tunable lets you
avoid PCI power state transition from D0 to D3 for suspending case. Default
is 1 or enabled.


# 347263c9 20-Oct-2010 Jung-uk Kim <jkim@FreeBSD.org>

Do not apply do_power_resume for suspending P2P bridge as we did in r214064.


# 62508c53 17-Aug-2010 John Baldwin <jhb@FreeBSD.org>

Add a new method to the PCI bridge interface, PCIB_POWER_FOR_SLEEP(). This
method is used by the PCI bus driver to query the power management system
to determine the proper device state to be used f

Add a new method to the PCI bridge interface, PCIB_POWER_FOR_SLEEP(). This
method is used by the PCI bus driver to query the power management system
to determine the proper device state to be used for a device during suspend
and resume. For the ACPI PCI bridge drivers this calls
acpi_device_pwr_for_sleep(). This removes ACPI-specific knowledge from
the PCI and PCI-PCI bridge drivers.

Reviewed by: jkim

show more ...


Revision tags: release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0
# 1a0fda2b 04-Mar-2010 Dag-Erling Smørgrav <des@FreeBSD.org>

IFH@204581


# 9199c09a 06-Jan-2010 Warner Losh <imp@FreeBSD.org>

Merge from head at r201628.

# This hasn't been tested, and there are at least three bad commits
# that need to be backed out before the branch will be stable again.


# e36af292 10-Dec-2009 Jung-uk Kim <jkim@FreeBSD.org>

Implement a rudimentary suspend/resume methods for PCI P2P bridge.

Reviewed by: jhb, imp


Revision tags: release/8.0.0_cvs, release/8.0.0
# 10b3b545 17-Sep-2009 Dag-Erling Smørgrav <des@FreeBSD.org>

Merge from head


# 89c81b88 21-May-2009 Warner Losh <imp@FreeBSD.org>

Revert junk from last commit. These are WIP and not ready (and don't
match the description of the last commit).


# 00b4e54a 20-May-2009 Warner Losh <imp@FreeBSD.org>

We no longer need to use d_thread_t, migrate to struct thread *.


Revision tags: release/7.2.0_cvs, release/7.2.0
# 9c797940 13-Apr-2009 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

- Merge from HEAD


# 9dffe835 15-Mar-2009 Warner Losh <imp@FreeBSD.org>

Don't adjust ranges at all for subtractive bridges. The simple-minded
stuff we're doing is too simple-minded, so back it out for now.


# 795dceff 14-Mar-2009 Warner Losh <imp@FreeBSD.org>

Two fixes:
(1) Fix pcib_read/write_config prototypes.
(2) When contrainting a resource request for a 'subtractive' bridge,
it is important to select a range outside the base/limit
registers,

Two fixes:
(1) Fix pcib_read/write_config prototypes.
(2) When contrainting a resource request for a 'subtractive' bridge,
it is important to select a range outside the base/limit
registers, since those are the only values known to not
possibly work. On my HP laptop, the base bridge excludes I/O
ports 0xa000-0xafff, however that was the range we were passing
up the tree. Instead, when a range spans the "hole" we now
arbitrarily pick the range just above the hole to allocate from.

All of my rl and xl cards, at a minimum, started working again on this
laptop with those fixes.

show more ...


12345678910>>...13