Yes, it's necessary (which is good, because I was certainly the last person to touch it though I can't remember if I put it there in the first place; I certainly remember seeing it in v1). Without it my boot hangs, though I do still see the LinuxBIOS banner output before this happens.
Ok.. But you do get serial output prior to that then? So it must not totally stop on all legacy IO.
Can you test the changing pci_locate_device() to pci_locate_device_on_bus(0) (or what ever bus that need to be) and see if it still works?
-- Richard A. Smith