Boot uboot from another position in flash
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
Dear ich,
Quoted 4 lines · In message <1312375799.4776.16.camel@debian> you wrote:
I use u-boot U-Boot 1.3.1 -
stm24_0054for sh (Board mb411) (STLinux 2.4)
It is no problem to boot with u-boot from flash at0x000000.
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 go0xa0650000).
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.
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_0054for sh (Board mb411) (STLinux 2.4)
It is no problem to boot with u-boot from flash at0x000000.
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 go0xa0650000).
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
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 changingCFG_MONITOR_BASE/CFG_RESET_ADDRESSwould 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
0x0A000000and 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
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 changingCFG_MONITOR_BASE/CFG_RESET_ADDRESSwould 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
0x0A000000and 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