[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Experience of using GT64120
>Hi,
>We are planning to use Galileo GT64120 in our system.
>
>I was wondering if anyone in this forum has used Galileo controller in
>Big Endian
>system. If so, could you pl. tell me the problems/good things you
>experienced while
>using Galileo 64120 ? I am looking specifically at the endianness
>issues.
I have worked with the this part in a MIPS architecture based big endian
system.
In fact, the '120 based board was a replacement for an earlier design based
on an older Galileo part (GT64110, I think). I was working on turning on
the 64120 based board with code that was meant for the previous design and
had been modified for 64120 where changes were known to be required. One of
the problems we ran into had to do with Endianness. In the older design, as
well as the new one, the part was setup to do endian swapping. However, the
original part did swapping on 32 bit words only. The 64120 can do it on 64
bit words as well. As a result, the behavior was not the same and the board
didn't work. Turns out, it was possible to setup the 64120 so that it would
behave the same as the previous part, so we eventually got past the problem.
I found that the 64120 datasheet wasn't very helpful in describing this
behavior.
Conclusion: Parts like the GT64120 should NEVER do endian swapping. It is
best handled in driver level software and/or actual I/O devices. Doing
swapping in a part that sits in-between is a REALLY BAD idea.
My advice to you would be to turn all endian swapping off.
>Our system has the CPU and the PCI devices operating in Big Endian mode.
If the CPU is big endian and PCI devices have their registers also laid out
in big endian fashion, then turning off endian swapping in GT64120 should
just work. If not, handle the differences in software.
>Any help would be appreciated.
>
>Thanks,
>Raghu Tilak
Monish Shah
Ascent Software