Hi!
I am Naman, a junior year college undergrad with interest in Open Source Hardware-Software Development.

I have been actively participating in coreboot community (mainly through the irc) for more than a month now, and have had lots of discussions with community mentors, while setting up coreboot on QEMU. I have had success working with basic payloads like the SeaBIOS and FILO. After having a basic understanding about coreboot, I was fascinated to work and learn more. I searched and found a project that I would like to do and began to draft my proposal for it. I am planning to pursue the project "Infrastructure for Accessing Block Devices on ARM SoCs" as a part of GSoC-2014. I have had encouraging support from Marc and other community mentors for this.

Currently, I am in the process of drafting my proposal, and wanted some assistance on the same. 

I have been able define the goal for the project: a generic interface for accessing block devices on ARM SoCs so that coreboot could launch its stages from the block devices (an MMC for example). After discussions with Alex (mrnuke), I learnt about the existing support for coreboot on cubieboard, and hence will use this to test the interface.

I needed some assistance on methods for developing the block device interface. One possibility is to work on the customizing uboot to our needs. (i.e do something like this: http://linux-sunxi.org/U-Boot#SD_Card)  and create a simple API which would act as a MMC driver. I wanted to know how could I improve upon this. Or if there are other ways to accomplish this?

I also wanted to ask whether I need to widen the goal of the project? And include some other functionalities? If yes, can I have some suggestions for the same? Some possibilities could be to have the API such that it can work in any stage (including bootblock), etc.

Hope to get a feedback on this. :)

Regards,
Naman Govil