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. 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 <[email protected]> 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 > > [email protected] > > http://lists.denx.de/mailman/listinfo/u-boot _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

