[U-Boot-Users] IDE access swaps the bytes.
Helio.Fujimoto at cyclades.com
Thu Dec 2 19:37:53 CET 2004
Sorry, I didn't see that. I am resending it in plain text.
I am using the u-boot with a MPC855T based board, and
I am trying to boot from a compact flash by using the diskboot command.
After debugging the code, I found out that the u-boot does
not detect a DOS partition in the compact flash because
the bytes are swapped when data is read from the IDE.
In the same way, when the IDE device information is
gotten, they are shown as if they are swapped two by
As the processor is big-endian, I supposed the u-boot
would automatically fix this swapping problem, though I
could not understand how. The IDE interface is set in
the CPU to have "16-bit" access. I don't know if I should
set a "define" to fix this swapping problem, or if I should
change the code (cmd_ide.c, I guess) using #ifdef <my platform>.
Actually, the Compact flash data sheet specifies exactly that, for a big
endian processor I should swap data when accessing a content inside it
(because in the compact flash access the even address data is the least
significant byte), and to not swap when reading the identification, exactly
the opposite of what is done in the code (in my understanding, I could be
Could anyone please explain this to me?
More information about the U-Boot