Specifically on the RPi CM4, we currently don't set the controller up
right and it never moves into the ready state (we don't observe the link
active bit). Failure to cleanup here actually results in a panic not
long after, due to a use-after-free in the rman bits. Further down in
pci_host_generic, we have some rman stashed in the softc that are
initialized and placed onto the rman tailq, then the softc is later
freed without an rman_fini() to pull them off of the tailq properly.
Note that PCI-E on this board still isn't functional after this patch,
but it does at least allow the board to boot out of the box without
having to disable devmatch.
Shout-out to Vince <git@darkain.com> for the extensive debugging and
analysis to arrive at this conclusion.