x86_64 BSP as GSOC2016 project

Saket Sinha saket.sinha89 at gmail.com
Sun Mar 13 16:45:36 UTC 2016

Hi Joel,

>> >> >
>> >> > I am interested in working on x86_64 BSP as GSOC2016 project with
>> >> > RTEMS and with initial guidance from Joel as to how to get started, I
>> >> > am working on the same.
>> >>
>> >
>> > Great! This is a nice project we need.
>> >
> Work on your proposal so we can fine tune the plan.

Please find below my initial proposal for the Project Idea "x86_64 BSP
for RTEMS" for review so that we can capture all the relevant features
related to the project in the scope of the program.

Project Abstract -

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.

Project Description -

1- Add compile and build RTEMS for x86_64 architecture.

Presently it is possible to compile and build RTEMS for x86_64 architecture.

2- Porting low-level pieces of RTEMS

This includes writing start assembly, device drivers, interrupt
handlers, context save, etc. The main components in RTEMS which this
goal have to deal with are:

score/cpu: To define general/common x86_64 architecture's functions.
libcpu (optional): To contain cache and MMU managers.
libbsp: BSPs code - The BSP can be shared with the pc386 but we likely
have to address the dependency on legacy hardware like APIC support
device probes.

3- Writing a BSP for a board that x86_64 supports

A simple BSP that can run hello world and ticker would be needed to be
a front-end interface to x86_64 and RTEMS users. Two BSPs can

qemu-system-x86_64: This BSP should be for simulation and debugging
purposes only.
Minnowmax: I have Minnowmax board which can be used during the project
to be the first x86_64 BSP on RTEMS.

Platform: Ubuntu.
Simulators: qemu.
Debuggers: gdb connected to qemu. Also I should be debugging at real
HW (Minnowmax board) by gdb via JTAG channel.
Hardware: Minnowmax board.

Benefits to RTEMS
The Board Support Package or BSP provides the glue between RTEMS and a
specific embedded system board's target hardware such as peripherals
and memory. Supporting x86-64 BSP will introduce RTEMS to the world of
Intel & AMD processors.

Project Deliverable

April 22 - 23 May (Community Bonding Period) -
Getting the Environment ready and fill any gaps into RTEMS tools for
building x86_64.

23 May - Midtem Evaluation -
As a starting point, get a stub compiling with no BSP.
Then get a simple x86_64 BSP to run hello world. For this reuse as
much code form pc386 BSP as possible.

Midtem Evaluation - August 23 -

1.Add APIC support
2. probe for what's available using ACPI
a) probe for legacy IDE/ATA when not there hangs
b) need to probe for legacy COM ports

Relevant Background Experience

Where do you go to school? What level are you?
I am doing Master of Science - M.Sc. - (CS-FOSS) from Anna University,
Chennai, India.

How did you learn about RTEMS?
I have used RTEMS in a couple of real-time projects as an end user but
getting involved in RTEMS development for the first time.


Free Software Experience/Contributions:
GITHUB ACCOUNT- https://github.com/disdi/

1. PROJECT: BOSS-MOOL- A Joint Initiative of DOS Lab IIT Madras and CDAC Chennai
ROLE: (Developer, community support)
Minimalistic Object Oriented Linux(MOOL) project aims at redesigning
the existing linux kernel with minimal set of core OO components. MOOL
provides Object Oriented wrappers for core Linux kernel in C++. These
wrappers support the development of kernel modules in an OO fashion.

2. PROJECT: HEPunion filesystem implementation as Linux module
ROLE: (Developer)
The aim of this project is to adapt and extend union file system as a proper
Linux module to address the requirements of a a huge computing facility, in
our case which is LHCb experiment (Large Hadron Collider beauty) at

3.Project : U-boot, Buildroot & Android support for Intel Baytrail Processor
ROLE: (Developer)
Building up a custom board specific Linux & Android distribution for the
MinnowMax Board(Intel Atom Processor) including setting up U-boot
support, kernel
image and cross compiler from scratch. Design and implementation of a
generic PCI
Express-based framework, BAR-addressed registers & DMA based Operation. Added
Advanced Configuration and Power Interface support for Minnowmax & QEMU in
U-boot mainline. Added custom board specific config to support Android Lollipop.

Language Skill Set
Being proficient in C programming and being familiar with bash script
programming and perl, python programming
Being familiar with Linux, AIX, FreeBSD OS and RTEMS embedded operation system
Being familiar with the x86, ARM, and MIPS architecture.
Being familiar with version control system --- git.

Saket Sinha

More information about the devel mailing list