Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Execute-in-Place (XIP)
@ 2005-10-27  9:02 Chris Boot
  2005-10-27 10:29 ` Ralf Baechle
  0 siblings, 1 reply; 5+ messages in thread
From: Chris Boot @ 2005-10-27  9:02 UTC (permalink / raw)
  To: linux-mips

[-- Attachment #1: Type: text/plain, Size: 461 bytes --]

Hi all,

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. 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?

Many thanks,
Chris

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



[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2359 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Execute-in-Place (XIP)
  2005-10-27  9:02 Execute-in-Place (XIP) Chris Boot
@ 2005-10-27 10:29 ` Ralf Baechle
  2005-10-28 22:20   ` Chris Boot
  0 siblings, 1 reply; 5+ messages in thread
From: Ralf Baechle @ 2005-10-27 10:29 UTC (permalink / raw)
  To: Chris Boot; +Cc: linux-mips

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Execute-in-Place (XIP)
  2005-10-27 10:29 ` Ralf Baechle
@ 2005-10-28 22:20   ` Chris Boot
  2005-10-28 22:51     ` Chris Boot
  0 siblings, 1 reply; 5+ messages in thread
From: Chris Boot @ 2005-10-28 22:20 UTC (permalink / raw)
  To: linux-mips

[-- Attachment #1: Type: text/plain, Size: 1747 bytes --]

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?

Many thanks,
Chris

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



[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2359 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Execute-in-Place (XIP)
  2005-10-28 22:20   ` Chris Boot
@ 2005-10-28 22:51     ` Chris Boot
  2005-10-28 23:08       ` David Daney
  0 siblings, 1 reply; 5+ messages in thread
From: Chris Boot @ 2005-10-28 22:51 UTC (permalink / raw)
  To: Chris Boot; +Cc: linux-mips

[-- Attachment #1: Type: text/plain, Size: 2257 bytes --]

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 #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2359 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Execute-in-Place (XIP)
  2005-10-28 22:51     ` Chris Boot
@ 2005-10-28 23:08       ` David Daney
  0 siblings, 0 replies; 5+ messages in thread
From: David Daney @ 2005-10-28 23:08 UTC (permalink / raw)
  To: Chris Boot; +Cc: linux-mips

Chris Boot wrote:
> 
> 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?
> 
It depends.

Depending on the hardware:

Initialize clocks (things like PLL divisors and such).

Initialize serial port so it can report on its progress.

Initialize memory controller (so that RAM functions).

(optionally) copy bootmonitor to ram so that it can run out of cached 
memory.

(optionally) copy kernel image to ram (possibley uncompressing it) and 
transfersing control to the kernel.

If you are doing XIP, the last two steps are probably skipped.


I have no idea what the vrboot loader does, but that is what the Xilleon 
boot loaders do.

David Daney

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-10-28 23:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-27  9:02 Execute-in-Place (XIP) Chris Boot
2005-10-27 10:29 ` Ralf Baechle
2005-10-28 22:20   ` Chris Boot
2005-10-28 22:51     ` Chris Boot
2005-10-28 23:08       ` David Daney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox