> Don't tell me this fixes SATA on the xserve G5... It does.
> Wonder if a "posting read" is necessary here. If that removes the > need to increase the delay, it probably is a better solution. I've tried this diff and I have not been able to reproduce the bogus SStatus value in a few reboots yet: Index: pciide.c =================================================================== RCS file: /OpenBSD/src/sys/dev/pci/pciide.c,v retrieving revision 1.355 diff -u -p -r1.355 pciide.c --- pciide.c 18 Oct 2015 20:24:10 -0000 1.355 +++ pciide.c 15 Nov 2015 10:21:36 -0000 @@ -7924,10 +7924,14 @@ svwsata_drv_probe(struct channel_softc * bus_space_write_4(ss->ba5_st, ss->ba5_sh, (channel << 8) + SVWSATA_SCONTROL, scontrol); + (void)bus_space_read_4(ss->ba5_st, ss->ba5_sh, + (channel << 8) + SVWSATA_SCONTROL); delay(50 * 1000); scontrol &= ~SControl_DET_INIT; bus_space_write_4(ss->ba5_st, ss->ba5_sh, (channel << 8) + SVWSATA_SCONTROL, scontrol); + (void)bus_space_read_4(ss->ba5_st, ss->ba5_sh, + (channel << 8) + SVWSATA_SCONTROL); delay(50 * 1000); sstatus = bus_space_read_4(ss->ba5_st, ss->ba5_sh,