On Tue, Mar 11, 2014 at 7:55 AM, Naman Govil namangov@gmail.com wrote:
Hi!
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.
Seems interesting, but I am a little bit worried that the project is too narrow. We updated CBFS about a year ago to allow CBFS content to come from any media. This was required for the earlier ARM-based platforms which use SPI ROM since the content was not memory mapped as it is on x86 platforms. It should be reasonably easy to follow that model using MMC as a backing media.
IIRC Alexandru ran into issues with adapting the A10's MMC driver from u-boot to coreboot and making it fit into the bootblock, which was constrained by the amount of SRAM available on the A10. I am worried that you will end up fighting implementation-specific problems on the platform you choose instead of doing more interesting infrastructure work.
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.
Good question. It's been a while since I've looked at this stuff in detail. I'll look at it further and try to add some ideas here.
Hope to get a feedback on this. :)
Regards, Naman Govil
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot