<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/amd64/include/pci_cfgreg.h, branch upstream/11.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=upstream%2F11.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=upstream%2F11.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2011-06-22T21:04:13Z</updated>
<entry>
<title>Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to</title>
<updated>2011-06-22T21:04:13Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2011-06-22T21:04:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1368987ae424617c7c314315a5e1b3c222773868'/>
<id>urn:sha1:1368987ae424617c7c314315a5e1b3c222773868</id>
<content type='text'>
the x86 tree.  The $PIR code is still only enabled on i386 and not amd64.
While here, make the qpi(4) driver on conditional on 'device pci'.
</content>
</entry>
<entry>
<title>Oops, missed these in 223424.</title>
<updated>2011-06-22T18:48:07Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2011-06-22T18:48:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e8f40e32eb9e2b3040eaf04d05bdb1fce9d3105d'/>
<id>urn:sha1:e8f40e32eb9e2b3040eaf04d05bdb1fce9d3105d</id>
<content type='text'>
Reported by:	jkim
</content>
</entry>
<entry>
<title>Extend the support for PCI-e memory mapped configuration space access:</title>
<updated>2008-08-22T02:14:23Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2008-08-22T02:14:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d320e05ca5409b1f651ce026c1e2068371181a89'/>
<id>urn:sha1:d320e05ca5409b1f651ce026c1e2068371181a89</id>
<content type='text'>
- Rename pciereg_cfgopen() to pcie_cfgregopen() and expose it to the
  rest of the kernel.  It now also accepts parameters via function
  arguments rather than global variables.
- Add a notion of minimum and maximum bus numbers and reject requests for
  an out of range bus.
- Add more range checks on slot/func/reg/bytes parameters to the cfg reg
  read/write routines.  Don't panic on any invalid parameters, just fail
  the request (writes do nothing, reads return -1).  This matches the
  behavior of the other cfg mechanisms.
- Port the memory mapped configuration space access to amd64.  On amd64
  we simply use the direct map (via pmap_mapdev()) for the memory mapped
  window.
- During acpi_attach() just after loading the ACPI tables, check for a
  MCFG table.  If it exists, call pciereg_cfgopen() on each subtable
  (memory mapped window).  For now we only support windows for domain 0
  that start with bus 0.  This removes the need for more chipset-specific
  quirks in the MD code.
- Remove the chipset-specific quirks for the Intel 5000P/V/Z chipsets
  since these machines should all have MCFG tables via ACPI.
- Updated pci_cfgregopen() to DTRT if ACPI had invoked pcie_cfgregopen()
  earlier.

MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Adjust the code to probe for the PCI config mechanism to use.</title>
<updated>2007-11-28T22:20:08Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2007-11-28T22:20:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=98bbce55fa1469293d57ebb30812748b949762f6'/>
<id>urn:sha1:98bbce55fa1469293d57ebb30812748b949762f6</id>
<content type='text'>
- On amd64, just assume type #1 is always used.  PCI 2.0 mandated
  deprecated type #2 and required type #1 for all future bridges which
  was well before amd64 existed.
- For i386, ignore whatever value was in 0xcf8 before testing for type #1
  and instead rely on the other tests to determine if type #1 works.  Some
  newer machines leave garbage in 0xcf8 during boot and as a result the
  kernel doesn't find PCI at all (which greatly confuses ACPI which expects
  PCI to exist when PCI busses are in the namespace).

MFC after:	3 days
Discussed with:	scottl
</content>
</entry>
<entry>
<title>Begin all license/copyright comments with /*-</title>
<updated>2005-01-05T20:17:21Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2005-01-05T20:17:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=46280ae71938465be665fb19cf8f7d1ca48a379a'/>
<id>urn:sha1:46280ae71938465be665fb19cf8f7d1ca48a379a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFi386: nuke pci_cfgintr</title>
<updated>2004-03-13T19:19:13Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2004-03-13T19:19:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=10884719f8216125848e0356d3f628ee247050f9'/>
<id>urn:sha1:10884719f8216125848e0356d3f628ee247050f9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFi386: pci_cfgreg.h rev 1.10 by jhb/des/njl.  Fix CONF1_ENABLE_MSK.</title>
<updated>2003-09-22T22:21:21Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2003-09-22T22:21:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5bc82d1ce1f36b24364fb5d6778e30ff863d2daa'/>
<id>urn:sha1:5bc82d1ce1f36b24364fb5d6778e30ff863d2daa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Commit MD parts of a loosely functional AMD64 port.  This is based on</title>
<updated>2003-05-01T01:05:25Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2003-05-01T01:05:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=afa8862328041298fe0c059d65cea406f92bad4b'/>
<id>urn:sha1:afa8862328041298fe0c059d65cea406f92bad4b</id>
<content type='text'>
a heavily stripped down FreeBSD/i386 (brutally stripped down actually) to
attempt to get a stable base to start from.  There is a lot missing still.
Worth noting:
- The kernel runs at 1GB in order to cheat with the pmap code.  pmap uses
  a variation of the PAE code in order to avoid having to worry about 4
  levels of page tables yet.
- It boots in 64 bit "long mode" with a tiny trampoline embedded in the
  i386 loader.  This simplifies locore.s greatly.
- There are still quite a few fragments of i386-specific code that have
  not been translated yet, and some that I cheated and wrote dumb C
  versions of (bcopy etc).
- It has both int 0x80 for syscalls (but using registers for argument
  passing, as is native on the amd64 ABI), and the 'syscall' instruction
  for syscalls.  int 0x80 preserves all registers, 'syscall' does not.
- I have tried to minimize looking at the NetBSD code, except in a couple
  of places (eg: to find which register they use to replace the trashed
  %rcx register in the syscall instruction).  As a result, there is not a
  lot of similarity.  I did look at NetBSD a few times while debugging to
  get some ideas about what I might have done wrong in my first attempt.
</content>
</entry>
<entry>
<title>Initiate de-orbit burn for USE_PCI_BIOS_FOR_READ_WRITE.  This has been</title>
<updated>2003-02-18T03:36:49Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2003-02-18T03:36:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=af3d516f55be795f88c75c5aa0f927a41f486825'/>
<id>urn:sha1:af3d516f55be795f88c75c5aa0f927a41f486825</id>
<content type='text'>
#if'ed out for a while.  Complete the deed and tidy up some other bits.

We need to be able to call this stuff from outer edges of interrupt
handlers for devices that have the ISR bits in pci config space.  Making
the bios code mpsafe was just too hairy.  We had also stubbed it out some
time ago due to there simply being too much brokenness in too many systems.
This adds a leaf lock so that it is safe to use pci_read_config() and
pci_write_config() from interrupt handlers.  We still will use pcibios
to do interrupt routing if there is no acpi.. [yes, I tested this]

Briefly glanced at by:  imp
</content>
</entry>
<entry>
<title>Add a function pci_probe_route_table() that returns true if our PCI BIOS</title>
<updated>2002-09-06T22:15:44Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2002-09-06T22:15:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c3ba1376f582ca4d332be0343bd654573450dfa9'/>
<id>urn:sha1:c3ba1376f582ca4d332be0343bd654573450dfa9</id>
<content type='text'>
supports interrupt routing and if the specified PCI bus is present in the
routing table.
</content>
</entry>
</feed>
