[U-Boot] RFC: U-Boot OneNAND IPL TEXT_BASE

Kyungmin Park kmpark at infradead.org
Sun May 2 13:07:13 CEST 2010


On Sun, May 2, 2010 at 3:39 PM, Marek Vasut <marek.vasut at gmail.com> wrote:
> Dne Ne 2. května 2010 05:54:41 Kyungmin Park napsal(a):
>> Hi,
>>
>> Which CPU do you use? In most ARM cpu, CPU load the IPL into its
>> internal SRAM, and runs at here.
> PXA270 ... the BootRAM is mapped to 0x0 and the code runs from there.
>> But in your case it's not. So you maybe redefine IPL address.
>>
>> Instead of modifying the config.mk, how about to define IPL_TEXT_BASE.
>>
>> e.g.,
>>
>> In OneNAND IPL code,
>>
>> #ifndef BOARD_IPL_TEXT_BASE
>> #define ONENAND_IPL_TEXT_BASE BOARD_IPL_TEXT_BASE
>> #endif
>
> That won't help -- TEXT_BASE is used while compiling start.S (to setup stack
> under TEXT_BASE) and the config.mk prepares the gcc options for start.S (the
> TEXT_BASE is defined in the gcc options).So modifying config.mk is unavoidable I
> fear.

Sorry my mistake. It's already supported at current drivers. Now I
works on s5pc100 and s5pc110 and each define it's TEXT_BASE at
onenand_ipl/board/samsung/${board_name}/config.mk. and it's used at
start.S

No need to modify config.mk and Makefile. If you need I can't send a
sample files to you.

Thank you,
Kyungmin Park

>
> The thing we can do is define STACK_TOP_BASE and that'd certainly do the trick!
> This would allow me to point stack into SRAM, while running the IPL code from
> BootRAM. Of course, in case STACK_TOP_BASE wasn't defined, it'd fall back to the
> old code in start.S. This would of course work without modifying config.mk and I
> start to like such a solution.
>
> Hm?
>
>>
>> load IPL code ONENAND_IPL_TEXT_BASE instead of current code.
>>
>> Thank you,
>> Kyungmin Park
>
> Thanks!
>>
>> On Sat, May 1, 2010 at 11:48 AM, Marek Vasut <marek.vasut at gmail.com> wrote:
>> > Hey,
>> >
>> > I've been tinkering with OneNAND IPL in uboot. I found out it wan't to
>> > load itself to the address specified in board/$(BOARDDIR)/config.mk .
>> > That's fine in most cases, but in my case that wasn't possible.
>> >
>> > In my case, SDRAM init didn't fit into the IPL, so I had to copy U-Boot
>> > into SRAM, then execute it and let it relocate itself into SDRAM. One
>> > more time: IPL: OneNAND->SRAM
>> > U-Boot: SRAM->SDRAM
>> >
>> > It all works fine, but when compiling the IPL, I had to alter TEXT_BASE
>> > not to point into SDRAM but SRAM too (because of stack). I introduced a
>> > variable called IPL which allows using config.mk from (for example)
>> > onenand-
>> > ipl/board/$(BOARDDIR)/config.mk rather than the
>> > board/$(BOARDDIR)/config.mk one, which is in my opinion a correct
>> > behaviour.
>> >
>> > Any opinions?
>> >
>> > Thanks in advance.
>> >
>> > diff --git a/config.mk b/config.mk
>> > index 73b5195..8639580 100644
>> > --- a/config.mk
>> > +++ b/config.mk
>> > @@ -130,9 +130,13 @@ BOARDDIR = $(VENDOR)/$(BOARD)
>> >  else
>> >  BOARDDIR = $(BOARD)
>> >  endif
>> > +ifdef  IPL
>> > +sinclude $(TOPDIR)/$(IPL)/board/$(BOARDDIR)/config.mk  # include IPL
>> > specific rules
>> > +else
>> >  ifdef  BOARD
>> >  sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific
>> > rules endif
>> > +endif
>> >
>> >  ########################################################################
>> > #
>> >
>> > _______________________________________________
>> > U-Boot mailing list
>> > U-Boot at lists.denx.de
>> > http://lists.denx.de/mailman/listinfo/u-boot
>


More information about the U-Boot mailing list