[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