[U-Boot-Users] Execute in place

How can I configure the kernel to execute in place (XIP) with u-boot?
I'm using the innovator (omap1510).
Thanks.
Marcelo.
-
Marcelo Leal mcfleal@yahoo.com.br CPqD Telecom & IT Solutions __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

In message 20040909112435.21127.qmail@web54209.mail.yahoo.com you wrote:
How can I configure the kernel to execute in place (XIP) with u-boot?
I'm using the innovator (omap1510).
This is a kernel issue. U-Boot is not really involved here.
Best regards,
Wolfgang Denk

Marcelo,
Instead of using bootm to boot the kernel you just need to jump to the address where the XIP image is located in flash.
Like this:
go 0x000c0000
This will jump to the XIP image and start executing. The only problem with this is the bootargs do not get passed to a XIP image so they must be compiled into the kernel.
Michael
On Sep 9, 2004, at 7:24 AM, Marcelo Leal wrote:
How can I configure the kernel to execute in place (XIP) with u-boot? I'm using the innovator (omap1510).
Thanks.
Marcelo.
Marcelo Leal mcfleal@yahoo.com.br CPqD Telecom & IT Solutions
Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

On Thu, Sep 09, 2004 at 10:10:41AM -0400, Michael Frey wrote:
Marcelo,
Instead of using bootm to boot the kernel you just need to jump to the address where the XIP image is located in flash.
Like this:
go 0x000c0000
That's nonsense. That doesn't make kernel XIP. AFAIR the only attempt to make XIP kernel was done for SH port. I do not know its current state.
ARM kernel doesn't support XIP. Only kernel uncompressor runs directly from flash (if configured in) and unpacks kernel into memory and then jumping there. I'm using U-Boot for such purpose anyway, because it gives you more freedom :)
Best regards, ladis

Oh -- It absolutely is ported to ARM, I am running a XIP kernel on an xscale board!!! And the example below works perfectly.
Michael
On Sep 9, 2004, at 10:31 AM, Ladislav Michl wrote:
On Thu, Sep 09, 2004 at 10:10:41AM -0400, Michael Frey wrote:
Marcelo,
Instead of using bootm to boot the kernel you just need to jump to the address where the XIP image is located in flash.
Like this:
go 0x000c0000
That's nonsense. That doesn't make kernel XIP. AFAIR the only attempt to make XIP kernel was done for SH port. I do not know its current state.
ARM kernel doesn't support XIP. Only kernel uncompressor runs directly from flash (if configured in) and unpacks kernel into memory and then jumping there. I'm using U-Boot for such purpose anyway, because it gives you more freedom :)
Best regards, ladis

In message 20040909143147.GA8003@umax645sx you wrote:
That's nonsense. That doesn't make kernel XIP. AFAIR the only attempt to make XIP kernel was done for SH port. I do not know its current state.
Wrong. We did this for some PowerPC systems as well, and U-Boot supports this. See http://www.denx.de/twiki/bin/view/DULG/ConfigureLinuxForXIP for details.
Best regards,
Wolfgang Denk

In message 0885FE4E-026A-11D9-AB76-00039390D626@pepper.com you wrote:
Instead of using bootm to boot the kernel you just need to jump to the address where the XIP image is located in flash.
This will usually fail to work.
"bootm" perfectly understands about XIP images, and allows you to pass the usual bd_info structure and boot commandline paramaters. All of this will be missing with "go".
This will jump to the XIP image and start executing. The only problem with this is the bootargs do not get passed to a XIP image so they must be compiled into the kernel.
This is NOT the only problem. It also misses to set up the reqired registers needed for the kernel, and ther eis no passing of any bd_info ot ATAGS or similar data.
Best regards,
Wolfgang Denk
participants (4)
-
Ladislav Michl
-
Marcelo Leal
-
Michael Frey
-
Wolfgang Denk