Also when it comes to enabling the IDE controller in compatibilty mode (reg 0x42) the non working versions reports it contains 0xc9, the working version reports the same register as 0.
You need to set the prog-if field in the PCI config space for the controller to 0x8a, not 0x8f, before doing the BAR allocation to get legacy mode. Did you do this?
Segher