
-----Original Message----- From: Stefan Roese [mailto:sr@denx.de] Sent: Wednesday, 2 May 2007 3:17 PM To: u-boot-users@lists.sourceforge.net Cc: Jonathan Pratt Subject: Re: [U-Boot-Users] U-boot & MonteJade start up
On Wednesday 02 May 2007 06:39, Jonathan Pratt wrote:
Is there some pre-bootloader code which does the transition to big-endian?
No.
If so, do I need to program this sepeartely? If not, where does the transition to big-endian occur and why does the code I see (in the srec file, for example) appear to start off big-endian?
Because it's compiled to be in big endian format. All IXP4xx U-Boot & Linux implementations I know of are done in big endian mode.
I can imagine ld getting pretty confused trying to link a little-endian snippet to a big-endian application.
I have to admit, that I don't know right now, where this big endian/little endian change is made. Perhaps some boot-strapping pin? Not sure, would have to look in the manual. Martijn? Could you jump in here?
When in doubt check the code, I guess.
I have been trawling the code and found that the reset vector points to the reset code, and the first thing it does is set big-endian-ness (load R0 with 0xF8 and write this value to CP15, register 1 - b7 is the endian-ness control bit).
From the IXP42x Developer's Manual the state of this bit is 0
(little-endian) on reset. I can't find any information about boot-strapping the endian-ness of the processor, or different behaviour of the excternal bus interface. I can imagine the switch over being problematic, but I can't find any documentaion as to how its done.
For the 2 IXP4xx boards I used (ixdpg425 and pdnb3) I can say, that they "just work" with the current U-Boot implementation in big endian mode. And here definitely no pre-bootloader is required.
What exactly is your problem? Can you see where the U-Boot hangs with you debugger? You are aware that the IXDPG425 port uses UART1 (and not UART0) for console with 115200 baud.
I'm having difficulty using the Macraigor USB wiggler. It doesn't seem to allow me to do a 'step' or 'go' with any useful result (ie the program counter doesn't appear to change). This is adding to my difficulties. I can't tell at the moment how far the code is getting before it dies.
I tried recompiling u-boot with UART2 as the console but had no better results. I believe that UART1 in u-boot is UART0 for the IXP425 (ie the console UART which is connected) and UART2 in u-boot is the other one that is not available on the IXDGP425 board. [but feel free to correct me if I'm wrong].
Best regards, Stefan
Thanks for your input Stefan.
Jonathan Pratt