[RTEMS Project] #2898: Create an x86_64 BSP

RTEMS trac trac at rtems.org
Sat Feb 4 17:13:58 UTC 2017


#2898: Create an x86_64 BSP
-------------------------+-------------------------
 Reporter:  tokencolour  |       Owner:
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  Indefinite
Component:  bsps         |     Version:  4.11
 Severity:  normal       |  Resolution:
 Keywords:  SoC          |
-------------------------+-------------------------
Description changed by joel.sherrill:

Old description:

> = Create an x86_64 BSP =
>

> [[TOC(Developer/Projects/Open/x86_64_BSP, depth=2)]]
>

> '''Mentors:''' TBD.
>
> '''Students:''' TBD.
>

> '''Status:'''
>
> Uninitiated.
>
> '''Introduction:'''
>
> This project involves the creation of an x86_64 BSP for RTEMS that would
> allow for installing on an OTS PC, x86 dev boards and emulated in popular
> emulation software.
>
> '''Goal:'''
>
> To have a functioning x86_64 BSP that will boot on OTS hardware and
> emulate fully in any x86 emulator.  Extended goals would include running
> RTEMS as a process in the build platform and peripheral support.
>

> '''Requirements:'''
>
> * Knowledge of x86_64 ASM, C Programming language.
> * Run on non-legacy hardware configurations.
> * Share code as possible with pc386 BSP.
> * Create x86_64 architectural port.
> * Requires x86_64-rtems tool configuration.
>

> '''Resources:'''
>
> * Current RTEMS developers.
> * Do not reinvent the wheel and use existing code instead, e.g. from
> FreeBSD.
>
> '''Acknowledgements'''
>  *  TBD
>
> = Miscellaneous Sections =
>
> As the project progresses, you will need to add build instructions, etc
> and this page will evolve from a project description into a HOWTO.
>
> = References =
>  *  TBD
>
> '''Other sections:''' If you have more to say about the project that
> doesn't fit in the proposed sections of this template, feel free to add
> other sections at will.

New description:

 = Create an x86_64 BSP =


 [[TOC(Developer/Projects/Open/x86_64_BSP, depth=2)]]


 '''Mentors:''' TBD.

 '''Students:''' TBD.


 '''Status:'''

 Uninitiated.

 '''Introduction:'''

 This project involves the creation of an x86_64 BSP for RTEMS that would
 allow for installing on an OTS PC, x86 dev boards and emulated in popular
 emulation software.

 newlib needs to be evaluated. It may be missing setjmp/longjmp support for
 x86_64.

 The existing pc386 BSP is a reference for some things but a goal of this
 effort is that the BSP not have any legacy device support. Using the pc386
 as a reference, it is missing support for a number of modern things
 including:

 * booting from EFI
 * EFI support for devices
 * APIC support (interrupt controller)
 * proper synchronization for SMP during context switch (XXX ticket #)
 * Thread Local Storage (TLS) support

 In addition, there has been discussion of the pc386 console device driver
 being updated to a newer infrastructure model and I am not sure if the
 clock driver uses the bintime support.

 The pc386 BSP is complex and straddles supporting legacy and modern
 hardware. A new legacy free BSP for i386 as well as a port for x86_64 with
 a legacy free BSP are needed. This project is focused on the x86_64.

 '''Goal:'''

 To have a functioning x86_64 BSP that will boot on OTS hardware and
 emulate fully in any x86 emulator.  Extended goals would include running
 RTEMS as a process in the build platform and peripheral support.


 '''Requirements:'''

 * Knowledge of x86_64 ASM, C Programming language.
 * Run on non-legacy hardware configurations.
 * Share code as possible with pc386 BSP.
 * Create x86_64 architectural port.
 * Requires x86_64-rtems tool configuration.


 '''Resources:'''

 * Current RTEMS developers.
 * Do not reinvent the wheel and use existing code instead, e.g. from
 FreeBSD.

 '''Acknowledgements'''
  *  TBD

 = Miscellaneous Sections =

 As the project progresses, you will need to add build instructions, etc
 and this page will evolve from a project description into a HOWTO.

 = References =
  *  TBD

 '''Other sections:''' If you have more to say about the project that
 doesn't fit in the proposed sections of this template, feel free to add
 other sections at will.

--

--
Ticket URL: <http://devel.rtems.org/ticket/2898#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list