My understanding is that unlike the PC world where hardware can report itself or be found easily the way things tend to be connected on ARM boards make it so that's not feasible or even possible. Someone just has to tell the kernel up front what is where.
Google provides core OS -> manufacturers add drivers -> done
(Of course this skips the "manufacturers add shitware" step).
But I've been told ARM just doesn't work that way and for whatever reason that I don't completely understand, hardware can't be abstracted this way on ARM.