[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