
16 Jul
2003
16 Jul
'03
1:11 a.m.
I'm working to get the IDE driver working with an ARM cpu. I'd like to reconcile the three places where swapping does or ought to occur.
1) On PPC, the IDENTITY block is byte swapped as it is read. 2) The identity strings within the IDENTITY block are not byte-swapped. 3) The LBA count is always word-swapped.
On an ARM, the combination that works is to swap the identity strings *only*. Enabling the PPC byte swapping will fix the strings, but it garbles the LBA count. It is possible that the reason this is so different on my target is that IDE controller IO is 16 bits wide.
So, I'm looking for someone who is familiar with the current IDE driver so that I know the right way to integrate my changes.
Cheers.