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

Roy Spliet Roy.Spliet at cl.cam.ac.uk
Wed Mar 16 14:38:22 GMT 2016


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