This may cause side effects if disk does not support UDMA mode and also let bad performance.
The modification is to record supported mode and only try supported mode when do disk read/write.
Also this patch combines the code for read/readex/write/writex to reduce code size.