[lowrisc-dev] Re: GSOC 2016 Aspirant for Improving device-tree support for the Linux RISC-V port

Saket Sinha saket.sinha89 at gmail.com
Sat Mar 19 11:50:21 GMT 2016


Hi Roy/Jamey,

I have made changes to the proposal based on the feedback received.
Kindly let me know how can I improve it more before submitting it.
Regards,
Saket Sinha


On Wed, Mar 16, 2016 at 8:08 PM, Roy Spliet <Roy.Spliet at cl.cam.ac.uk> wrote:
> Dear Saket,
>
> Thank you for your interest and for writing up this proposal. As far as my
> feedback goes, I suggest you try and expand a lot on the technical side of
> implementing device tree support for both RISC-V Linux and QEMU. Try and
> convince the reader of the feasibility of your proposal; that you know with
> great likelihood what you will be doing on a week-to-week (or day-to-day)
> basis. In fact, I think it's a good idea to also elaborate on the risks in
> this project that might jeopardise your schedule, the effect of those risks
> are on progress and milestones and how you expect to minimise or mitigate
> these risks.
> If you have any technical questions related to your project feel free to
> ask.
> Yours,
>
> Roy
>
>
> On 15/03/16 20:18, Saket Sinha wrote:
>>
>> Hi,
>>
>> On Tue, Mar 15, 2016 at 8:34 AM, Saket Sinha <saket.sinha89 at gmail.com>
>> wrote:
>>>
>>> Hi Roy,
>>>
>>>> Here's some broader questions that you might want to answer for yourself
>>>> before we can discuss any technical details: What would be your
>>>> project's
>>>> end goal (and how would you show it)? Where are the challenges in this
>>>> project? How do you think this problem breaks down in manageable chunks?
>>>> How
>>>> are you going to tackle them? What do you intend to learn from your
>>>> attempt
>>>> in doing so?
>>>> I hope this helps you get on the right track for the application
>>>> procedure.
>>>
>>>
>>> I have tried to answer the  above questions in my project proposal below.
>>>
>>> Please find below my initial proposal for the project for review so
>>> that we can capture all the relevant features
>>> related to the project in the scope of the program.
>>>
>>> Project Name - Improve device-tree support for the Linux RISC-V port
>>>
>>> Project Abstract -
>>>
>>> Implement solid, well-tested device-tree support for the Linux RISC-V
>>> port.
>>>
>>> The Linux RISC-V port is currently fairly barebones, and makes use of
>>> the host-target interface (HTIF) for most I/O. This project would
>>> involve cleaning it up, ensuring there is good support for
>>> instantiating devices using device-tree, and thoroughly testing this
>>> through modifications to the bootloader and to QEMU.
>>>
>>>
>>> Project Description -
>>>
>>> 1- Support  RISC-V low-level device tree support in Linux and QEMU
>>>
>>> a) Device Tree support at the platform level needs to be added in the
>>> Linux device driver layer.
>>> b) QEMU also needs to recognize device trea and parse it accordingly .
>>>
>>> 2- Provide infrastructure for testing same Linux image with different
>>> device-trees for  RISC-V emulation on QEMU
>>>
>>> The following infrastructure is proposed to test same Linux image with
>>> different device-trees
>>> developer_workstation ---pushes changes---> Github -----triggers
>>> build----> Jenkins ---produces images ---> run in containers
>>>
>>>
>>> Project Deliverable
>>>
>>> April 22 - 23 May (Community Bonding Period) -
>>> 1. Port RISCV Linux to the latest Linux tree.
>>> 2. Get the build and test environment ready
>>>
>>>
>>> 23 May - Midterm Evaluation -
>>> 1.Add device tree support to RISCV Linux
>>>
>>> Midterm Evaluation - August 23 -
>>> 1. Add device tree support to RISCV QEMU.
>>> 2. Test same Linux image with different device-trees with the help of
>>> continuous integration sing Jenkins and containers.
>>>
>>> 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.
>>>
>>> What would be your project's end goal (and how would you show it)?
>>> We should have a much better QEMU support in following ways --
>>> 1. Add device tree support to RISCV QEMU
>>> 2. Add more hardware support in form of different SoCs such as a hard
>>> drive, framebuffer, and virtio.
>>> 3. Optimize for speed. Patches are partially available for an old
>>> version of QEMU.
>>>
>>>
>>> We should have a much better Linux support for RISCV in following ways --
>>> 1. Add device tree support to RISCV Linux
>>> 2. Provide images running Linux for testing and to test the QEMU-user
>>> support.
>>> 3. Provide good Linux images ( like a Debian port of RISCV). Would be
>>> nice to offer a working
>>> image as well.
>>>
>>> Where are the challenges in this  project?
>>> The most challenging part is testing different device tree
>>> configuration with the same kernel. We need to set up a Continous
>>> Integration setup environment to achieve it.
>>>
>>>
>>> How do you think this problem breaks down in manageable chunks? How
>>>   are you going to tackle them?
>>>
>>> The project is broken down in three phases   -
>>> 1. Add device tree support to RISCV Linux
>>> 2. Add device tree support to RISCV QEMU
>>> 3. Testing environment to test the above support
>>>
>>>
>>> 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
>>> Being familiar with the x86, ARM, and MIPS architecture and emulation
>>> softwares like QEMU.
>>> Being familiar with botloaders like U-boot and coreboot.
>>> 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/1V-V1QMUr3SxTCTLVm9mRhON-ewj5xw_ZRIvQOKLBg-A/edit?usp=sharing
>>
>> Regards,
>> Saket Sinha
>>
>



More information about the lowrisc-dev mailing list