John Williams | 1 Jul 2005 02:30
Picon
Picon
Favicon

Re: XIP / PIC

Hi Vincent,

Carr, Vincent wrote:

>>Steve Sanders wrote:
>>I've never heard of running the kernel directly from flash.  But that
> 
> doesn't mean it can't be done.  You'd certainly have to > copy some
> sections to SRAM _before_ starting the OS so that the kernel can update
> variables...
> 
> Reading more about executing the kernel directly from FLASH I've seen
> that this can be done if the kernel is built for XIP (eXecute In Place).
> Some documentation say that the Kernel is always XIP.  Is that true?

> For applications to run directly from flash however the compiler must be
> capable of generating Position Independent Code(PIC) and capable fo
> generating the PIC form of flat executable.
> 
> Does the current version of mb-gcc support PIC?

You don't need PIC to run the kernel in place from flash - the basic 
build infrastructure is already in place.  As Steve said, you'll need to 
relocate the data segments into RAM of some sort.

Create appropriate platform subdir arch/microblaze/platform/xxxxx (see 
the doco in linux-2.4.x/Documentation/microblaze)

Edit arch/microblaze/Boards.make, create a new section for your 
platform, and adding the line MODEL=flash inside the if/endif pair. 
(Continue reading)


Gmane