Supported hardware for Satellite 6 Bootdisk plugin
Bootdisk plugin enables Satellite users to download Host based or Generic host images. These are small ISO images pre-loaded with SYSLINUX which chainloads iPXE. The iPXE firmware is able to load kernels via HTTP, but since there is no PXE (UNDI) involved, hardware iPXE driver must exist for this to work. Unfortunately, not all network cards will work with iPXE, therefore the host-based images cannot be used.
The Host image embeds network credentials (IP, gateway, netmask, DNS) therefore DHCP is not required but the host can only be used with the host it belongs to. Once the host exits the Build mode, the bootdisk image will no longer work due to invalidated provisioning token. On the other hand, Generic image initializes network via DHCP and can be used with any host. The next errata for Satellite (6.1.6) will bring additional image (Subnet) which will be essentially Generic image, but proxied via Smart Proxy Templates plugin running on a Capsule.
Some network cards are not detected by iPXE at all, some may fail during downloading of kernel or init RAM disk. This can also happen on hypervisors like VMWare or Microsoft Hyper-V with particular emulated drivers.
Solution
There is a special kind of image -- Full host image. This one is also a host-based image and requires DHCP. It contains SYSLINUX loader, configuration rendered from PXELinux template kind associated with the host and embedded Linux kernel and init RAM disk of the associated OS installer. The image is slightly bigger, but it works on most platforms as there is no PXE-booting involved and the initial network configuration is done directly by the OS installer (e.g. Anaconda from RHEL).
Although this image type requires DHCP, it is possible to use the full host image with static network credentials. Create the following PXELinux kind template and associate it with the OS/Host:
<%
mac = @host.mac
bootif = '00-' + mac.gsub(':', '-') if mac
ip = @host.ip
mask = @host.subnet.mask
gw = @host.subnet.gateway
dns = @host.subnet.dns_primary
-%>
DEFAULT linux
LABEL linux
KERNEL <%= @kernel %>
<% if (@host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16) or
(@host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7) -%>
APPEND initrd=<%= @initrd %> ks=<%= foreman_url('provision') + "&static=yes" %> inst.ks.sendmac <%= "ip=#{ip}::#{gw}:#{mask}:::none nameserver=#{dns} ksdevice=bootif BOOTIF=#{bootif}" %>
<% else -%>
APPEND initrd=<%= @initrd %> ks=<%= foreman_url('provision') + "&static=yes" %> kssendmac <%= "ip=#{ip} netmask=#{mask} gateway=#{gw} dns=#{dns} ksdevice=#{mac} BOOTIF=#{bootif}" %>
<% end -%>
Full host image generated for the host will contains static IP information and therefore work on DHCP-less and PXE-less network. This can be used as a workaround for non-supported hardware that will not work with iPXE-based Host image or Generic or Subnet images.
This workaround only works in scenarios where host-based images can be used. An alternative approach with PXE-less discovery will be covered in this blog post.

Comments
Bootdisks based on iPXE are must have network card driver present in the iPXE project in order to intialize network stack and download Anaconda kernel and init ram disk. Check list of supported drivers list on the project page: http://ipxe.org/appnote/hardware_drivers for support.
Full host image which is based on SYSLINUX does not need to initialize network stack in order to boot the Anaconda installer, because it is embedded in the disk. For this reason, the bootdisk is slightly bigger (about 30 MB) but it allows booting of any hardware that is supported in RHEL.
Alternative approach is to use PXE-less discovery image which is also based on SYSLINUX and directly boots into small RHEL7-based OS and switches into Anaconda using kexec. No iPXE drivers are needed in this case as well.
Satellite 6.3 will create Full Host Bootdisk that will not require DHCP: and will also work in non-DHCP environments:
https://github.com/theforeman/community-templates/pull/326
This requires DHCP boot mode on the Subnet set to Static.