taken from OpenBSD. Test hardware kindly provided by Intel. This still needs management bits, and doesn't support older controllers, but that shouldn't be hard to fix.