Initial import of the port of the new(er) FreeBSD ATA code.
Note this code has not yet been hooked into the build as such, unless you (unwisely) specify the devices in your kernel config according to sys/conf/files. The modules are also excluded from the module build due to not having a SUBDIR entry in sys/dev/disk/Makefile. The PCI code isn't yet operation pending a patch for sys/bus/pci/pci.c I will send to kernel@ shortly. It short-circuits lazy resource allocation for PCI ATA controllers in legacy mode (i.e. on legacy ISA ATA addresses, which are not configured in the PCI BARs).
The userland utility used to control nata ('natacontrol') and documentation will follow later. Also, be aware only nata, natapci, natadisk and natapicd have seen testing on real hardware so far. nataraid, natausb and natacam are probably not compilable yet, I need to clean those up.