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(a)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(a)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_ZRIvQO...
>
> Regards,
> Saket Sinha
>