linux-mips
[Top] [All Lists]

Re: Execute-in-Place (XIP)

To: Chris Boot <bootc@bootc.net>
Subject: Re: Execute-in-Place (XIP)
From: Chris Boot <bootc@bootc.net>
Date: Fri, 28 Oct 2005 23:51:21 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <942B8B78-5F73-4647-AAA6-6025EABEDD1E@bootc.net>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <18E0376E-A524-42EE-A5ED-BDF9A0668DE6@bootc.net> <20051027102912.GB17645@linux-mips.org> <942B8B78-5F73-4647-AAA6-6025EABEDD1E@bootc.net>
Sender: linux-mips-bounce@linux-mips.org
On 28 Oct 2005, at 23:20, Chris Boot wrote:

On 27 Oct 2005, at 11:29, Ralf Baechle wrote:


On Thu, Oct 27, 2005 at 10:02:40AM +0100, Chris Boot wrote:



Due to the puny amounts of RAM (2MB) on my board, I'm going to have
to use XIP so that RAM isn't being taken up by kernel code. I was
looking around for MIPS XIP patches and all I could find was in the
linux-vr tree which seems, well, dead.



The linux-vr tree is kept online for people to dig out the goodies which
may be left in there :-)



Does anyone know of any more
recent patches or should I undertake the work of porting the patch to
a more recent 2.4 kernel?



I guess you'll have to do that.  The alternative would be to port the
2.6 ARM XIP_KERNEL implementation.

  Ralf


Looks like I'm getting somewhere! I still don't have a JTAG or any way to test the kernels I've built, but readelf provides good looking results and my flat binary image looks like it will do the right thing.

Basically what I've done is ported over the XIP code from the linux- vr tree but renamed config symbols to be more similar to the ARM XIP code in 2.6, so then I can port the 2.6 MTD code into my 2.4 tree (if possible) that little bit more easily.

The only remaining question now is: the kernel_entry symbol seems to be placed pretty randomly in my kernel image, and the way I'm finding it now is by getting the entry point address from readelf. Is there a way I can either move this to be at the start of the image or insert the entry point address at the start of my image? Surely I can't be expected to hand-edit an entry point address in my bootloader and flash the lot to run my kernel, can I?

Gaah! Just as I sent this I whacked a 'j kernel_entry' at the top of head.S and it does what I want. Now, time to get the hardware side of things done, and a bootloader written! ;-)

Now, who knows how much initialisation a bootloader is expected to perform? Does the vrboot loader do the necessary operations, in which case I can just work on that instead of writing my own?

Cheers,
Chris

--
Chris Boot
bootc@bootc.net
http://www.bootc.net/

Attachment: smime.p7s
Description: S/MIME cryptographic signature

<Prev in Thread] Current Thread [Next in Thread>