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

Saket Sinha saket.sinha89 at gmail.com
Tue Mar 15 20:18:37 GMT 2016


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