[U-Boot] relocation on freescale mx35 doesn't work after update to 2015.01

Hello,
I'm using a custom board with iMX35 CPU (ARM1136). After I updated to version 2015.01 the relocation doesn't work anymore. I turned on CONFIG_DEBUG and the last output I saw was: Relocating to 83f89000, new gd at 83e84ec8, sp at 83e84ea0
I recognized the new function "relocate_vectors". I copied the special handling (strong function) from mx25, which is just skipping the relocation of the vectors and with that the U-Boot is booting again on my board.
Do I need some special handling for mx35, too? Does anyone have the same problem?
Any advice?
Thanks, Sebastian
CADCON Ingenieurgesellschaft mbH & Co. KG Geschaeftsfuehrer: Robert Bauer, Andreas Gundel Sitz der Gesellschaft: D-86368 Gersthofen Registergericht: Amtsgericht Augsburg HRA 14521
[CADCON]

Hello Sebastian,
On Thu, 5 Feb 2015 15:24:40 +0000, Priebe, Sebastian Sebastian.Priebe@cadcon.de wrote:
Hello,
I'm using a custom board with iMX35 CPU (ARM1136). After I updated to version 2015.01 the relocation doesn't work anymore. I turned on CONFIG_DEBUG and the last output I saw was: Relocating to 83f89000, new gd at 83e84ec8, sp at 83e84ea0
I recognized the new function "relocate_vectors". I copied the special handling (strong function) from mx25, which is just skipping the relocation of the vectors and with that the U-Boot is booting again on my board.
Do I need some special handling for mx35, too? Does anyone have the same problem?
Any advice?
Yes, you quite possibly need some special handling. Look up the i.MX35 documentation and see how the exception vectors are handled. Probably there is something similar to what had to be done with i.MX27 (and that probably should (have) be(en) done wth i.MX25 too instead of just skipping the whole thing).
Thanks, Sebastian
Amicalement,

Hello Albert,
thanks for your answer. I tried to look up some information in the iMX35 reference manual but couldn't find anything. It doesn't say anything about the exception vectors. Can you point me at any direction where to look for information?
What is the consequence of skipping the relocation? Until now we don't use interrupts in the U-Boot. I want to know if we could update to the new version using the workaround I used, or if we might facing problems with that.
Greetings, Sebastian Priebe Telefon: +49 (0)621 685996-26
========================================== CADCON Ingenieurgesellschaft mbH & Co. KG Geschaeftsfuehrer: Robert Bauer, Andreas Gundel Sitz der Gesellschaft: D-86368 Gersthofen Registergericht: Amtsgericht Augsburg HRA 14521 ==========================================
-----Ursprüngliche Nachricht----- Von: Albert ARIBAUD [mailto:albert.u.boot@aribaud.net] Gesendet: Freitag, 6. Februar 2015 01:16 An: Priebe, Sebastian Cc: U-Boot Betreff: Re: relocation on freescale mx35 doesn't work after update to 2015.01
Hello Sebastian,
On Thu, 5 Feb 2015 15:24:40 +0000, Priebe, Sebastian Sebastian.Priebe@cadcon.de wrote:
Hello,
I'm using a custom board with iMX35 CPU (ARM1136). After I updated to version 2015.01 the relocation doesn't work anymore. I turned on CONFIG_DEBUG and the last output I saw was: Relocating to 83f89000, new gd at 83e84ec8, sp at 83e84ea0
I recognized the new function "relocate_vectors". I copied the special handling (strong function) from mx25, which is just skipping the relocation of the vectors and with that the U-Boot is booting again on my board.
Do I need some special handling for mx35, too? Does anyone have the same problem?
Any advice?
Yes, you quite possibly need some special handling. Look up the i.MX35 documentation and see how the exception vectors are handled. Probably there is something similar to what had to be done with i.MX27 (and that probably should (have) be(en) done wth i.MX25 too instead of just skipping the whole thing).
Thanks, Sebastian
Amicalement, -- Albert.

Hello Sebastian,
Cc:ing Stefano since he's the i.MX custodian.
On Fri, 6 Feb 2015 09:38:17 +0000, Priebe, Sebastian Sebastian.Priebe@cadcon.de wrote:
Hello Albert,
thanks for your answer. I tried to look up some information in the iMX35 reference manual but couldn't find anything. It doesn't say anything about the exception vectors. Can you point me at any direction where to look for information?
I'll try and have a look, but basically, you should search for a chapter describing the boot sequence or exception handling.
What is the consequence of skipping the relocation? Until now we don't use interrupts in the U-Boot.
It's not only about interrupts... It's about exceptions, which include data aborts, prefetch aborts, undefined instructions...
Catching such exceptions properly means you will get to *know* something went wrong, and moreover you will get to know *what* was going wrong exactly.
Without proper exception vectors... Maybe you'll get a board reset when the exception occurs, and you strictly won't have any clue as to what happened and why.
I want to know if we could update to the new version using the workaround I used, or if we might facing problems with that.
Depends. Do you feel lucky? :)
If so, you can go on with not relocating vectors at all; but if I have my say, that patch won't end up in the mainline, so you'll have to keep it somewhere locally.
If you think you might encounter data or prefetch aborts for some reason while working on U-Boot, and if you don't want to spend hours just finding out that you hit an abort then trying to determine why you did, then I'd say you should fix the vector relocation properly.
Greetings, Sebastian Priebe Telefon: +49 (0)621 685996-26
Amicalement,

Hi Stefano,
On Thu, Feb 5, 2015 at 1:24 PM, Priebe, Sebastian Sebastian.Priebe@cadcon.de wrote:
Hello,
I'm using a custom board with iMX35 CPU (ARM1136). After I updated to version 2015.01 the relocation doesn't work anymore. I turned on CONFIG_DEBUG and the last output I saw was: Relocating to 83f89000, new gd at 83e84ec8, sp at 83e84ea0
I recognized the new function "relocate_vectors". I copied the special handling (strong function) from mx25, which is just skipping the relocation of the vectors and with that the U-Boot is booting again on my board.
Do I need some special handling for mx35, too? Does anyone have the same problem?
I don't have a mx35pdk handy to look into this, but it would be nice to get mx35 back to life in U-boot.
Magnus,
I suspect that mx31 is also broken. Could you please test mx31pdk with U-boot 2015.01?
Regards,
Fabio Estevam

Hi Fabio,
On Wed, 11 Feb 2015 11:55:04 -0200 Fabio Estevam festevam@gmail.com wrote: ...
I don't have a mx35pdk handy to look into this, but it would be nice to get mx35 back to life in U-boot.
Magnus,
I suspect that mx31 is also broken. Could you please test mx31pdk with U-boot 2015.01?
I can confirm that mx31 is broken in 2015.04-rc1. I tried to boot it on imx31_phycore, the board is bricked (hangs after "DRAM: 128 MiB" output). Unfortunately I do not have time to debug/repair it now.
Best regards,
Anatolij

Hi Fabio,
On 11/02/2015 14:55, Fabio Estevam wrote:
Hi Stefano,
On Thu, Feb 5, 2015 at 1:24 PM, Priebe, Sebastian Sebastian.Priebe@cadcon.de wrote:
Hello,
I'm using a custom board with iMX35 CPU (ARM1136). After I updated to version 2015.01 the relocation doesn't work anymore. I turned on CONFIG_DEBUG and the last output I saw was: Relocating to 83f89000, new gd at 83e84ec8, sp at 83e84ea0
I recognized the new function "relocate_vectors". I copied the special handling (strong function) from mx25, which is just skipping the relocation of the vectors and with that the U-Boot is booting again on my board.
Do I need some special handling for mx35, too? Does anyone have the same problem?
I don't have a mx35pdk handy to look into this, but it would be nice to get mx35 back to life in U-boot.
Of course, yes. I have rather no time to look into, maybe someone else can take a look.
Magnus,
I suspect that mx31 is also broken. Could you please test mx31pdk with U-boot 2015.01?
Stefano
participants (5)
-
Albert ARIBAUD
-
Anatolij Gustschin
-
Fabio Estevam
-
Priebe, Sebastian
-
Stefano Babic