Changes between Version 8 and Version 9 of GSoC/2013/ParavirtualizationOfRTEMS


Ignore:
Timestamp:
Apr 18, 2013, 7:50:24 PM (7 years ago)
Author:
Phipse
Comment:

/* Virtual CPU Issue */ new target approach added (L4RTEMS example)

Legend:

Unmodified
Added
Removed
Modified
  • GSoC/2013/ParavirtualizationOfRTEMS

    v8 v9  
    5656The other configuration parameter, which are deduce from ''--target'' and ''--enable-rtemsbsp'', are not touched.
    5757
     58==  Introduce new target  ==
    5859
     60
     61I used this approach to bring RTEMS on L4Re.
     62I will explain it with the aid of this implementation.
     63The architecture in use is x86 and I used the i386 CPU and BSP directory as a starting point.
     64
     65[https://github.com/phipse/L4RTEMS L4RTEMS source code]
     66== = Structure  ===
     67
     68
     69A new target called ''l4vcpu'' was introduced and the corresponding directories:
     70 *  c/src/lib/libbsp/l4vcpu/
     71 *  cpukit/score/cpu/l4vcpu/
     72were added.
     73
     74These directories are copies of the i386 directories and only code that produced visible faults was touched and changed.
     75To provide a point where data can be shared a so called ''sharedVariableStruct'' was defined, which accommodates e.g. a pointer to the vcpu-structure and a pointer to the l4re_env (L4Re environment).
     76This is passed to RTEMS at startup in a register, e.g. like the multiboot information, and is saved before anything else is executed.
     77
     78The BSP startup was boiled down, as hardware initialization isn't necessary.
     79Also some privileged instructions are skipped.
     80It's still work in progress.
     81
     82== = Configuration  ===
     83
     84Also some configuration files were adapted, see the doc file in the source code.
     85
     86To configure RTEMS ''l4vcpu-rtems4.11'' must be used as a target and ''pc386'' as BSP.
     87
     88== = Compilation & Start up  ===
     89
     90
     91RTEMS compiles and links without errors.
     92The resulting ELF binary, e.g. hello.exe, is passed on to L4Re as a command line argument.
     93It is loaded into the applications address space and the vcpu is supplied with EIP and ESP.
    5994=  ARINC 653 API - GSOC 2012  =
    6095