Skip to contentSkip to conversation

How to translate Little to Big endian ?

DISCUSSION Prabhakar Kalasani 4 participants 4 messages Sep 24, 2003 MIPS

lore
Share & tools
lore
#0 lore raw

Hi all,
I'm trying to port linux-2.4.21 on CSB250 , which is Au1500 processor based board,
the processor is a Big endian, I have taken PB1500 board as my prototype, but it's used Au1500 Little endian. anybody could help me out, what are the changes do i need to change to make a Little endian souce into Big endian source.

Is anybody worked on Cogent's CSB250 board till.

Thanks in advance
Prabhakar

#1 lore raw

Hi Prabhakar,

Quoted 8 lines

I'm trying to port linux-2.4.21 on CSB250 , which is Au1500 processor based board,
the processor is a Big endian, I have taken PB1500 board as my prototype, but it's used Au1500 Little endian.
anybody could help me out, what are the changes do i need to change to make a Little endian souce into Big endian source.

Guess you are looking for a library call to do
this.
If i am correct, then htonl function will serve the purpose.

My $0.02

Thanks,
-karthi

Quoted 6 lines

Is anybody worked on Cogent's CSB250 board till.

Thanks in advance
Prabhakar

________________________________________________________________________
Want to chat instantly with your online friends? Get the FREE Yahoo! Messenger http://mail.messenger.yahoo.co.uk

#2 lore raw
In reply to Prabhakar Kalasani

Hi,

I believe that the CSB250 port will support big or small endian. Check out the latest mips-linux kernel code first (2.4.22 I beleive). Then you need to use a big endian toolchain. Mips not Mipsel (ie, mips-linux-gcc). Then open the arch/mips/defconfig-csb250 file and modify the CONFIG_CPU_LITTLE_ENDIAN option. It should be:

CONFIG_CPU_LITTLE_ENDIAN=y

Then continue to build the kernel as you would for little endian. I think that's all from the kernel standpoint. But, are you using Micromon to boot the kernel? By default I think the CSB250 and it's monitor are built little endian, and you won't be able to use this if you want a BE kernel. You need the boot loader to put the Au1500 into BE mode.

Email if you need more details.

Lyle

Quoted 22 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Prabhakar Kalasani
Sent: Wednesday, September 24, 2003 10:15 AM
To: '[email protected]'
Subject: How to translate Little to Big endian ?

Hi all,
I'm trying to port linux-2.4.21 on CSB250 , which is Au1500 processor based board, the processor is a Big endian, I have taken PB1500 board as my prototype, but it's used Au1500 Little endian. anybody could help me out, what are the changes do i need to change to make a Little endian souce into Big endian source.

Is anybody worked on Cogent's CSB250 board till.

Thanks in advance
Prabhakar

#3 lore raw

Prabhakar,

I recently checked-in a patch for CSB250 support, courtesy of Embedded Edge. The port is big endian. I assume you haven't seen the bits because you haven't pulled the latest bits from the linux-mips tree and that's why you're trying to port it yourself?

Pete

Quoted 47 lines · Lyle Bainbridge

Hi,

I believe that the CSB250 port will support big or small endian. Check out the latest mips-linux kernel code first (2.4.22 I beleive). Then you need to use a big endian toolchain. Mips not Mipsel (ie, mips-linux-gcc). Then open the arch/mips/defconfig-csb250 file and modify the CONFIG_CPU_LITTLE_ENDIAN option. It should be:

CONFIG_CPU_LITTLE_ENDIAN=y

Then continue to build the kernel as you would for little endian. I think that's all from the kernel standpoint. But, are you using Micromon to boot the kernel? By default I think the CSB250 and it's monitor are built little endian, and you won't be able to use this if you want a BE kernel. You need the boot loader to put the Au1500 into BE mode.

Email if you need more details.

Lyle

Quoted 22 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Prabhakar Kalasani
Sent: Wednesday, September 24, 2003 10:15 AM
To: '[email protected]'
Subject: How to translate Little to Big endian ?

Hi all,
I'm trying to port linux-2.4.21 on CSB250 , which is Au1500 processor based board, the processor is a Big endian, I have taken PB1500 board as my prototype, but it's used Au1500 Little endian. anybody could help me out, what are the changes do i need to change to make a Little endian souce into Big endian source.

Is anybody worked on Cogent's CSB250 board till.

Thanks in advance
Prabhakar