<p>Attempting to merge branch created to add PCI USB Host controller support into a Fork of the iPXE project. This is not intended to merge back into the parent project at this time. Still learning GitHub branching and merging.</p>

<hr>

<h4>You can merge this Pull Request by running</h4>
<pre>  git pull https://github.com/johntwillis/ipxe usb-host-support</pre>
<p>Or view, comment on, or merge it at:</p>
<p>  <a href='https://github.com/ipxe/ipxe/pull/27'>https://github.com/ipxe/ipxe/pull/27</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Adding usb host support module files</li>
  <li>Alterating makefile to include host driver support</li>
  <li>Updating struct initializer for pci_device_id using PCI_ROM macro</li>
  <li>Adding usb host support header file</li>
  <li>Adjust message component to use include/ipxe/usb.h file</li>
  <li>Adjust usb.h file to reference headers in include/ipxe directory, remove legacy ifdefines</li>
  <li>Adding a header with conventional standard usb macros ch.9</li>
  <li>Missed a #endif when removing legacy #ifdefine, removing it now</li>
  <li>Alterating include/ipxe/errfile to include macros for host controller driver, hub messages and usbcore modules</li>
  <li>Alterating ohci_hcd host controller driver to use include/ipxe headers</li>
  <li>Alterating ohci_hcd host controller driver to use use zx instead of lx format specifier for unint32_t in DBG messages</li>
  <li>Alterating pci_ids.h to include a macro for identifying ohci and uhci host controller device hardware on the pci bus</li>
  <li>Alterating ohci_hcd driver a single DBG msg, back from using zx to lx for a size_t, got a bit over eager</li>
  <li>Alterating uhci_hcd driver to use include/ipxe headers</li>
  <li>Alterating uhci_hcd header to use include/ipxe headers, remove legacy #ifndef</li>
  <li>Alterating uhci_hcd.c to fix DBG format specifier lx to zx, fixed probe call to match callback</li>
  <li>Alterating uhci_hcd.c to fix DBG format specifier lx to zxi, missed one</li>
  <li>Alterating urb.c to use include/ipxe headers</li>
  <li>Alterating usbcore.c to use include/ipxe headers</li>
  <li>Alterating usbcore.c to remove legacy structs for tables</li>
  <li>Alterating usbcore.c to use new method for iterating over driver table entries using tables.h, this was recommended by Mareo on the #ipxe Freenode IRC channel</li>
  <li>Alterating usb.h define USB_DRIVERS table in the new way, and define what a table entry will look like</li>
  <li>Alterating config/console.h so that when invoked with qemu for testing -serial file:logfile.log will capture DBG messages for later study, using # make DEBUG=uhci_hcd,usbcore, to compile with DBG messages [on] for testing host controller driver and usbcore support modules</li>
  <li>Alterating uhci_hcd.c so it provides a cleaner 'Trying' msg when debugging</li>
  <li>Alterating hcd.h to remove more legacy #ifndef</li>
  <li>Adding an extra README.usb file for general information</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-0">README.usb</a>
    (22)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-1">src/Makefile</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-2">src/config/console.h</a>
    (2)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-3">src/drivers/bus/usb/hcd.h</a>
    (21)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-4">src/drivers/bus/usb/message.c</a>
    (133)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-5">src/drivers/bus/usb/ohci.h</a>
    (342)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-6">src/drivers/bus/usb/ohci_hcd.c</a>
    (766)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-7">src/drivers/bus/usb/uhci_hcd.c</a>
    (827)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-8">src/drivers/bus/usb/uhci_hcd.h</a>
    (208)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-9">src/drivers/bus/usb/urb.c</a>
    (32)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-10">src/drivers/bus/usb/usbcore.c</a>
    (160)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-11">src/include/ipxe/errfile.h</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-12">src/include/ipxe/pci_ids.h</a>
    (2)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-13">src/include/ipxe/usb.h</a>
    (215)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/ipxe/ipxe/pull/27/files#diff-14">src/include/ipxe/usb/ch9.h</a>
    (315)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/ipxe/ipxe/pull/27.patch'>https://github.com/ipxe/ipxe/pull/27.patch</a></li>
  <li><a href='https://github.com/ipxe/ipxe/pull/27.diff'>https://github.com/ipxe/ipxe/pull/27.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/ipxe/ipxe/pull/27">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/709460__eyJzY29wZSI6Ik5ld3NpZXM6QmVhY29uIiwiZXhwaXJlcyI6MTcyNzIzNjM4NiwiZGF0YSI6eyJpZCI6NDM2NjAwODl9fQ==--8083c6dad894a2b738d0e775751c9794b611fa35.gif" width="1" /></p>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"View this Pull Request on GitHub","action":{"@type":"ViewAction","url":"https://github.com/ipxe/ipxe/pull/27","name":"View Pull Request"}}</script>