[U-Boot] skip relocation

Marcel korgull at home.nl
Mon Jan 3 18:57:23 CET 2011


On Sunday, January 02, 2011 10:08:59 pm Reinhard Meyer wrote:
> Dear Marcel,
> 
> > Dear Reinhard,
> > 
> >> Dear Marcel,
> >> 
> >>>> Is there any example that boots from NOR ?
> >> 
> >> looking at the defines below, you are not really booting u-boot from
> >> NOR...
> >> 
> >>> #define CONFIG_SKIP_LOWLEVEL_INIT
> >> 
> >> If you do that, you must have an initial boot code before u-boot. See
> >> below...
> >> 
> >>> #define CONFIG_SKIP_RELOCATE_UBOOT
> >> 
> >> Not used anymore.
> >> 
> >>> /* SDRAM */
> >>> #define CONFIG_NR_DRAM_BANKS		1
> >>> #define PHYS_SDRAM			0x70000000
> >>> #define PHYS_SDRAM_SIZE			0x08000000	/* 128 megs */
> >> 
> >> Those defines have had their names changed.
> > 
> > These I have changed already. I think they are fine.
> > 
> >>> #define CONFIG_SYS_GBL_DATA_SIZE	128
> >> 
> >> This constant is wrong, use the auto-generated value.
> > 
> > OK
> > 
> >>> /*
> >>> 
> >>>    * Size of malloc() pool
> >>>    */
> >>> 
> >>> #define CONFIG_SYS_GBL_DATA_SIZE	128 /* 128 bytes for initial data */
> >> 
> >> This constant is wrong, use the auto-generated value.
> > 
> > OK
> > 
> >>   >  Forgot to mention a few items :
> >>   >  
> >>   >  I flash the NOR at address 0x10020000
> >>   >  TEXT_BASE is 0x10020000
> >> 
> >> That really implies you have another boot program running before u-boot.
> >> Proably AT91 bootstrap? Is it configured to jumo to 0x1002000, or does
> >> it copy u-boot to some SDRAM address and jumps there?
> > 
> > Yes I run AT91 bootstrap. Is there a way to skip this ?
> 
> Sure, if you put an u-boot *with low level init* at the begin of NOR and
> wire BMS to start from CS0 NOR.
> 
> However I am not sure a functional low level init (in u-bbot) exists (yet)
> for your board. Even with NOR it is customary to use at91bootstrap which
> does the hardware including SDRAM init.
> 
> If you touch at91bootstrap, configure it such that it either loads u-boot
> to start of SDRAM and jumps there, or directly jumps to the address in NOR
> where u-boot is stored. Make sure CONFIG_SYS_TEXT_BASE is correct!
> 
> > That's a good question if at91bootstrap jumps to the right address. How
> > can I tell ? (maybe I find out myself, at least your question got me
> > thinking ! ) Let's say it does copy u-boot to SDRAM, do I need to set
> > that address as TEXT_BASE ?
> 
> Exactly. CONFIG_SYS_TEXT_BASE must be the address where u-boot is running
> before relocation. If that address is different, relocation will fail.
> 
> > I tried setting TEXT_BASE to 0x10020000 or 0x73f00000
> > If I use another address, AT91bootstrap doesn't do anything, but at both
> > of these addresses it behaves the same.
> 
> You should have the source of your at91 bootstrap. Without source its near
> impossible to tell how it is configured.
> 
> >> Have a look at the current implementation for top9000 in
> >> u-boot-arm/master and compare your files to it. Any differences to your
> >> code that are not board and/or SoC specific probably have to be fixed
> >> in your board code or you should be able to reason why it must be
> >> different for your board.

I have the AT91bootstrap code and compiled it also once a couple of months 
ago. I will first start form there and see what AT91bootstrap is really doing 
on my board. 
I guess I know enough for now to keep me busy for while. I'll report back f I 
find any issue or made it work.

Thanks again for your reply,
Marcel


More information about the U-Boot mailing list