[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Endian Mapping
Amit,
Endian swapping is primarily a byte address mapping method. In Little
Endian systems data bytes are mapped into the address space as follows:
Addr 0 => Data7..0, Addr 1 => Data15..8, Addr 2 => Data24..16,
Addr 3 => Data31..24.
In Big Endian systems the address allocation is reversed:
Addr 0 => Data31..24, Addr 1 => Data23..16, Addr 2 => Data15..8
Addr 3 => Data7..0.
To map a 32-bit little endian bus to a 32-bit big endian bus you have to
connect whole byte lanes with each other, not a pin reversal like you have
suggested:
D7 => D31 .. D0 => D24
D15 => D23 .. D8 => D16
D23 => D15 .. D16 => D8
D31 => D7 .. D24 => D0
If you hardwire the busses you have to be careful not to transfer address
information
(i.e. you can not do this for a multiplexed address/data bus, such as the
PCI). Also,
for data transfers of less than 32-bits you have to be make sure that you
put data on
the correct byte lanes, as required by the target device.
Hope this helps.
Best Regards,
Manfred Kuhland
Director - Electronic Engineering
Atlantek Microsystems Pty Ltd
Innovation House, Technology Park,
Mawson Lakes, SA, 5095, AUSTRALIA
Tel: +61-8-8260-8990
Fax: +61-8-8349-4286
E-mail: man@atlantek.com.au
Internet: http://www.atlantek.com.au
Amit Shah wrote:
> Hi all,
>
> One of our customers is using a Power PC system. What he is trying to do
> is trying to use our PCI device on that system.
> And to do so, he is connecting addr 0 of our PCI chip (little endian) to
> addr 31 of his Power PC (Big endian) system and
> so on for all data[31:0] and cbe[3:0] lines.
>
> Does this type of approach work ?
> Does this really solve big endian to little endian mapping ?
>
> Thanks,
>
> Amit Shah