Hi. My name's Rob Austin, I'm a computer engineering major at Michigan State University. I got on IRC for a bit a week or so ago and chatted with a few people about some of the proposed ideas. I've had some time to think and read more about what I could do for coreboot, and I'd like to get a little more feedback.
- First, the "tianocore" idea. What do you see as the end result of getting tianocore working well as a payload? I've been reading about it and it sounds interesting, but I need to say something more on the application as to "why" this is a worthwhile project. What can we boot with EFI that we can't boot with a traditional bios, besides maybe OSX?
- Second, just how difficult would the port to the Marvell chipset be? I'm familiar with the ARM architecture and assembly, more so than x86, and realistically in my future I'll probably be working more with embedded devices than PCs, so this might be the more valuable experience to put on a resume.
Also, I was planning on applying both to coreboot and beagleboard (my fallback), doing largely the same thing. For beagleboard's GSOC project page, they have "Improve bootloader support" http://elinux.org/BeagleBoard/GSoC/Ideas#Improve_bootloader_support listed as an idea. If someone could port coreboot to one ARM device, it would probably be considerably easier to then port it to other ARM devices.
I want to be up front about my ignorance here: I don't know much about BIOSes. There seems to be a hole in my computer engineering curriculum. With all the required classes, I've started understanding computers from the bottom (transistor physics and digital logic), and built up from that (combinational logic, VLSI design, computer architecture) --the hardware--, and at the same time I've been learning about them from the top down --high level languages, then assembler and operating systems, the software side. Ideally they would meet in the middle and teach about the bios, but they don't. I've asked. I don't feel that my education would be complete without this knowledge. I don't like the idea that there's hardware, software, and some magical binary blob in the middle that connects them. I want to understand it, and I want it to be open. You can't trust a blob.
So that's why I want to work at the bios/hardware-initialization/bootloader level. There are only two projects for GSOC that focus on the hardware-software interface, and I'd be happy to work on either one. There are other reasons: I want to become a good programmer, and reading and writing code every day for a whole summer will do that; I want to do something meaningful that people will actually use, to give back to the open-source community after benefitting from it for so many years.
So having said all that, I would appreciate any feedback as far as what the devs think is more doable/would be more useful. I'm interested in both projects, but if following one path will lead to a summer of banging my head against the wall and failure, I'd rather choose the other. Writing "I spent 3 months participating in GSOC and accomplished nothing" doesn't look so hot.
Thanks.
Rob Austin