* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.