[U-Boot] reloacting uboot

Hi All, I am using the at91sam9263 device from which the bootstrap code load u-boot to the desired ram address. However, I would like to re-relocate this at the different address based on memory availability. Can / or should this be done?

Dear E Robertson,
In message 200908251403.20809.e.robertson.svg@gmail.com you wrote:
I am using the at91sam9263 device from which the bootstrap code load u-boot to the desired ram address. However, I would like to re-relocate this at the different address based on memory availability. Can / or should this be done?
Yes, it can be done, and it should be done. The fact that we don't do it so far is due to the fact that the guys who did the original ARM code found this too complicated (even though they had a working example in the PowerPC code) and not worth the effort. We're suffering since from this misconception.
But there is no reason why you would have to copy the code again - just copy it to the correct address right from the beginning, like we do in PowerPC.
Best regards,
Wolfgang Denk

On Tuesday 25 August 2009 02:11:36 pm Wolfgang Denk wrote:
Dear E Robertson,
In message 200908251403.20809.e.robertson.svg@gmail.com you wrote:
I am using the at91sam9263 device from which the bootstrap code load u-boot to the desired ram address. However, I would like to re-relocate this at the different address based on memory availability. Can / or should this be done?
Yes, it can be done, and it should be done. The fact that we don't do it so far is due to the fact that the guys who did the original ARM code found this too complicated (even though they had a working example in the PowerPC code) and not worth the effort. We're suffering since from this misconception.
But there is no reason why you would have to copy the code again - just copy it to the correct address right from the beginning, like we do in PowerPC.
I don't follow: Yes, but no reason to do so? On the 9263, it's copied once to ram at boot. Are you saying their is no reason to copy it again? If so, yes, in most cases that would be true but I would like to move it again after that initial relocation. Since I've already specified my start address, I wasn't sure about.

Dear E Robertson,
In message 200908251428.55255.e.robertson.svg@gmail.com you wrote:
In message 200908251403.20809.e.robertson.svg@gmail.com you wrote:
I am using the at91sam9263 device from which the bootstrap code load u-boot to the desired ram address. However, I would like to re-relocate this at the different address based on memory availability. Can / or should this be done?
Yes, it can be done, and it should be done. The fact that we don't do it so far is due to the fact that the guys who did the original ARM code found this too complicated (even though they had a working example in the PowerPC code) and not worth the effort. We're suffering since from this misconception.
But there is no reason why you would have to copy the code again - just copy it to the correct address right from the beginning, like we do in PowerPC.
I don't follow: Yes, but no reason to do so?
You wrote: "re-relocate". This is bogus. Just relocate it once, to the correct address.
On the 9263, it's copied once to ram at boot. Are you saying their is no reason to copy it again? If so, yes, in most cases that would be true but I would like to move it again after that initial relocation. Since I've already specified my start address, I wasn't sure about.
Fix the ARM relocating scheme such that it works like in PowerPC: link the image not for a RAM address, but for the address in flash. Then, after determining the RAM size, copy & relocate the code once to RAM. Only one copy. Not two.
Best regards,
Wolfgang Denk

Wolfgang Denk skrev:
Dear E Robertson,
In message 200908251428.55255.e.robertson.svg@gmail.com you wrote:
In message 200908251403.20809.e.robertson.svg@gmail.com you wrote:
I am using the at91sam9263 device from which the bootstrap code load u-boot to the desired ram address. However, I would like to re-relocate this at the different address based on memory availability. Can / or should this be done?
Yes, it can be done, and it should be done. The fact that we don't do it so far is due to the fact that the guys who did the original ARM code found this too complicated (even though they had a working example in the PowerPC code) and not worth the effort. We're suffering since from this misconception.
But there is no reason why you would have to copy the code again - just copy it to the correct address right from the beginning, like we do in PowerPC.
I don't follow: Yes, but no reason to do so?
You wrote: "re-relocate". This is bogus. Just relocate it once, to the correct address.
On the 9263, it's copied once to ram at boot. Are you saying their is no reason to copy it again? If so, yes, in most cases that would be true but I would like to move it again after that initial relocation. Since I've already specified my start address, I wasn't sure about.
Fix the ARM relocating scheme such that it works like in PowerPC: link the image not for a RAM address, but for the address in flash. Then, after determining the RAM size, copy & relocate the code once to RAM. Only one copy. Not two.
Best regards,
Wolfgang Denk
Very few boards based on the SAM9263 store u-boot in parallel flash and if they are stored in SPI dataflash or in NAND flash it makes little sense to link the u-boot to the flash address.
Fix at91bootstrap to load where you want it to load.
BR Ulf Samuelsson

On Tuesday 25 August 2009 02:11:36 pm Wolfgang Denk wrote:
Dear E Robertson,
In message 200908251403.20809.e.robertson.svg@gmail.com you wrote:
I am using the at91sam9263 device from which the bootstrap code load u-boot to the desired ram address. However, I would like to re-relocate this at the different address based on memory availability. Can / or should this be done?
Yes, it can be done, and it should be done. The fact that we don't do it so far is due to the fact that the guys who did the original ARM code found this too complicated (even though they had a working example in the PowerPC code) and not worth the effort. We're suffering since from this misconception.
But there is no reason why you would have to copy the code again - just copy it to the correct address right from the beginning, like we do in PowerPC.
By the way, my reason for doing this is that i want to maintain a proportional memory space available so if I increase the ram size I would like to relocate the boot loader without doing a separate build. Make sense?

Dear E Robertson,
In message 200908251442.53461.e.robertson.svg@gmail.com you wrote:
By the way, my reason for doing this is that i want to maintain a proportional memory space available so if I increase the ram size I would like to relocate the boot loader without doing a separate build. Make sense?
That's how it's supposed to be. On PowerPC, we will relocate U-Boot to the very end of available RAM.
Best regards,
Wolfgang Denk
participants (3)
-
E Robertson
-
Ulf Samuelsson
-
Wolfgang Denk