x86_64 BSP as GSOC2016 project

Gedare Bloom gedare at rtems.org
Tue Mar 15 21:08:31 UTC 2016


Make sure this is linked through the GSOC table on our wiki.

On Tue, Mar 15, 2016 at 4:01 PM, Saket Sinha <saket.sinha89 at gmail.com> wrote:
> Hi,
>
> On Sun, Mar 13, 2016 at 10:15 PM, Saket Sinha <saket.sinha89 at gmail.com> wrote:
>> 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
>> and
>> 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
>> implemented:
>>
>> 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.
>>
>> Environment
>> 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.
>>
>> Experience
>>
>> 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)
>> http://dos.iitm.ac.in/projects/MOOL
>> 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)
>> https://github.com/HeisSpiter/hepunion
>> 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
>> CERN.
>>
>> 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.
>>
>
> Please find my proposal at the below link and provide your feedbacks
> for the same-
>
> https://docs.google.com/document/d/1Qtw_a7PahgosdePpfiEO4xpLxQxFNZlA13n4hQRIuu8/edit?usp=sharing
>
>
> Regards,
> Saket Sinha
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list