
On Sun, May 2, 2010 at 3:39 PM, Marek Vasut marek.vasut@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@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@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot