Skip to contentSkip to conversation

Boot uboot from another position in flash

U-Boot ich 2 participants 5 messages Aug 3, 2011 – Aug 10, 2011

lore
Share & tools
lore

ich

author
#0 lore raw

Hello guys

I use u-boot U-Boot 1.3.1 - stm24_0054 for sh (Board mb411) (STLinux 2.4)
It is no problem to boot with u-boot from flash at 0x000000.

But I have to install u-boot in another position in flash than 0x000000. I can also load the uboot from a u-boot loaded in RAM with jtag (with go 0xa0650000).

In the Bootvector is a jump written in Assembly language like:
#####################################
.text
.org 0

mov.l start_addr, r0
mov.l p2_mask, r1
mov.l @r0, r0
or r1, r0
jmp @r0
nop

.align 2

start_addr:    .long    0xa0650000
p2_mask:        .long   0xa0000000

.end
#####################################
(I have no idea about assembly language; I just modified an existing code!)

Here is hangs. No start at all.

I used the CFG_MONITOR_BASE=0xa0650000 without success.

Is the problem my U-boot or the assembly code?

Thank you
contumax

#1 lore raw

Dear ich,

Quoted 4 lines · In message <1312375799.4776.16.camel@debian> you wrote:

I use u-boot U-Boot 1.3.1 - stm24_0054 for sh (Board mb411) (STLinux 2.4)
It is no problem to boot with u-boot from flash at 0x000000.

Please note that U-Boot v1.3.1 is about 4 years old and as such no longer supported here.

Quoted 3 lines

But I have to install u-boot in another position in flash than 0x000000. I can also load the uboot from a u-boot loaded in RAM with jtag (with go 0xa0650000).

U-Boot is, in it's default configuration, designed to be run on a virgin CPU comingg fresh out of reset, so it naturally has to be installed at the reset vector of your processor. In addition to the start address, many parts of the initialization code expect to find a vorgin, uninitialized system. Such parts must be disabled when you want to change the conditions under which you want to run U-Boot.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Children are natural mimics who act like their parents despite  every
effort to teach them good manners.
author
#2 lore raw

Thank for your answer.

Quoted 8 lines

Dear ich,

Quoted 4 lines · In message <1312375799.4776.16.camel@debian> you wrote:

I use u-boot U-Boot 1.3.1 - stm24_0054 for sh (Board mb411) (STLinux 2.4)
It is no problem to boot with u-boot from flash at 0x000000.

I know that. But I am not able to port for sh platform to a newer u-boot.

Quoted 7 lines

Please note that U-Boot v1.3.1 is about 4 years old and as such no longer supported here.

Quoted 3 lines

But I have to install u-boot in another position in flash than 0x000000. I can also load the uboot from a u-boot loaded in RAM with jtag (with go 0xa0650000).

Quoted 6 lines

U-Boot is, in it's default configuration, designed to be run on a virgin CPU comingg fresh out of reset, so it naturally has to be installed at the reset vector of your processor. In addition to the start address, many parts of the initialization code expect to find a vorgin, uninitialized system. Such parts must be disabled when you want to change the conditions under which you want to run U-Boot.

I read this several time in the net, but found no solution. I know it is possible, because I saw it in a flash hex-file, but can't reproduce it.
I thought changing CFG_MONITOR_BASE / CFG_RESET_ADDRESS would do it.

Do you say it's not easily possible to boot u-boot from another flash address even with a newer u-boot????

Do I have to make big changes to the uboot-source (start.S,..)?

I could put ~256 bytes of assembly code to the reset-vector at 0x0A000000 and jmp in the u-boot; but if you say this is not enough, I will not start to learn the assembly language for my processor.

Thank you

contumax

#3 lore raw

Dear ich,

Quoted 6 lines · In message <1312383540.4776.36.camel@debian> you wrote:

I know that. But I am not able to port for sh platform to a newer u-boot.

Quoted 2 lines

Please note that U-Boot v1.3.1 is about 4 years old and as such no longer supported here.

Your quoting style is strange. Normally the reply _follows_.

Well, if you cannot update, then we cannot help it either. It's yur problem, after all.

[Well, of course there are companies that will happily send you a quotation for such an update, in case you are considering a commercial solution.]

Quoted 11 lines
Quoted 6 lines

U-Boot is, in it's default configuration, designed to be run on a virgin CPU comingg fresh out of reset, so it naturally has to be installed at the reset vector of your processor. In addition to the start address, many parts of the initialization code expect to find a vorgin, uninitialized system. Such parts must be disabled when you want to change the conditions under which you want to run U-Boot.

I read this several time in the net, but found no solution. I know it is possible, because I saw it in a flash hex-file, but can't reproduce it.
I thought changing CFG_MONITOR_BASE / CFG_RESET_ADDRESS would do it.

As mentioned, this is NOT sufficient. See also the FAQ.

Quoted 2 lines

Do you say it's not easily possible to boot u-boot from another flash address even with a newer u-boot????

It is possible, and it is not so difficult if you have sufficient experience with U-Boot.

Quoted 1 line

Do I have to make big changes to the uboot-source (start.S,..)?

This depends on your definition of "big". Judging from the questions you are asking, I tend to say: too big for you. No offence meant.

Quoted 3 lines

I could put ~256 bytes of assembly code to the reset-vector at 0x0A000000 and jmp in the u-boot; but if you say this is not enough, I will not start to learn the assembly language for my processor.

This has nothing to do with using assembly code.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The nice thing about  standards  is that there are  so many to choose
from.                                           - Andrew S. Tanenbaum
author
#4 lore raw

Am Mittwoch, den 03.08.2011, 21:21 +0200 schrieb Wolfgang Denk:

Quoted 26 lines

Dear ich,

Quoted 6 lines · In message <1312383540.4776.36.camel@debian> you wrote:

I know that. But I am not able to port for sh platform to a newer u-boot.

Quoted 2 lines

Please note that U-Boot v1.3.1 is about 4 years old and as such no longer supported here.

Your quoting style is strange. Normally the reply _follows_.

Well, if you cannot update, then we cannot help it either. It's yur problem, after all.

[Well, of course there are companies that will happily send you a quotation for such an update, in case you are considering a commercial solution.]

Quoted 7 lines
Quoted 6 lines

U-Boot is, in it's default configuration, designed to be run on a virgin CPU comingg fresh out of reset, so it naturally has to be installed at the reset vector of your processor. In addition to the start address, many parts of the initialization code expect to find a vorgin, uninitialized system. Such parts must be disabled when you want to change the conditions under which you want to run U-Boot.

Quoted 6 lines
Quoted 4 lines

I read this several time in the net, but found no solution. I know it is possible, because I saw it in a flash hex-file, but can't reproduce it.
I thought changing CFG_MONITOR_BASE / CFG_RESET_ADDRESS would do it.

As mentioned, this is NOT sufficient. See also the FAQ.

It is absolutly not necessary to change CFG_MONITOR_BASE / CFG_RESET_ADDRESS !

Quoted 11 lines
Quoted 3 lines

Do you say it's not easily possible to boot u-boot from another flash address even with a newer u-boot????

It is possible, and it is not so difficult if you have sufficient experience with U-Boot.

Quoted 1 line

Do I have to make big changes to the uboot-source (start.S,..)?

This depends on your definition of "big". Judging from the questions you are asking, I tend to say: too big for you. No offence meant.

There is no need to change anything in u-Boot source for my platform.

Judging from the answers you give, I tend to say: Don't answer questions, wich are too big for you.

Quoted 5 lines
Quoted 3 lines

I could put ~256 bytes of assembly code to the reset-vector at 0x0A000000 and jmp in the u-boot; but if you say this is not enough, I will not start to learn the assembly language for my processor.

This has nothing to do with using assembly code.

It was only an assembly code problem.

I can now start U-Boot from every position in flash I want.

contumax