[coreboot] GSoC: Seabios USB Option ROM, small initial planning

Leandro Dorileo ldorileo at gmail.com
Thu May 7 17:46:00 CEST 2009

Hi Jason

On Thu, May 7, 2009 at 11:34 AM, Jason Wang <wangqingpei at gmail.com> wrote:
> Hi all,
> On Wed, May 6, 2009 at 10:05 PM, Leandro Dorileo <ldorileo at gmail.com> wrote:
>> Hi Guys
>> I was talking to Jason and we found we need to draw a bit better the
>> API and responsibilities between us. I figure out I`m going to support
>> hardware detection and initialization, and a framework to read and
>> write blocks from MSC devices.
> i also want to know how can i support the api functions with option rom.
> I have a little doubt that the hardware detection and initialization can be
> done
> with out optionrom which in my eyes should be done within optionrom.

AFAICS the libpayload will supply the option ROM with a common API
that knows how to detect the Host Controller Interfaces, the
functions/hubs plugged in and so on. The option ROM should organize
the execution path using the libpayload usb stack.

That`s what I understand, and it`s how I`ve designed things to work, I
may be wrong of course. ;-)

>> Looking the current libpayload`s source code I found UHCI is pretty
>> complete and meets the requirements I mentioned above. So, the focus
>> should be put on EHCI and OHCI. Of course bug fixing what becomes
>> needed as well.
>> Again looking in the source code, I found abstractions that will ease
>> the process of coupling the other host controller interface drivers, I
>> don`t have many questions regarding the internal design and API of
>> libpayload(by now at least) but how Jason is going to integrate and
>> use libpayload usb stack.
>> To test and improve my understanding I put together[1] some code from
>> FILO, libpayload and a stub option ROM, just to see how it`s supposed
>> to be integrate(PS: this option ROM is a work in progress and will be
>> used just for testing the usb implementations I`m going to do, and
>> it`s not functional yet).
>> For now, I have two major questions, #1: I`ve seen other projects like
>> FILO including libpayload with svn:external, once seabios is
>> maintained with git, how it should be done with seabios? how would we
>> manage the source code integration and maintainability between seabios
>> and libpayload?.
> that's also what i am thinking about, mabe we can put the optionrom in
> coreboot, just
> let the seabios to load the optionrom .

I hadn`t thought that but I think there`s no technical limitations for
that. Very well thought any way. ;-)

>> #2: libpayload uses kbuild/kconfig but seabios
>> doesn`t, what would be the best approach to integrate their build
>> system? (PS: Sorry, it wasn`t two questions, but many questions and
>> two areas. ;-) )
>> A third questions would be, how people test the libpayload stuffs? do
>> they write small payloads for that? is that feasible writing an option
>> ROM for testing the libpayload`s usb stack?
>> A last question. Should I CC the mentors and people I judge
>> interested? or, is coreboot at coreboot.org good enough? ;-)
>> [1] - http://vps.dorilex.net/cgi-bin/gitweb.cgi


(°=   Leandro Dorileo
//\    ldorileo at gmail.com   -   http://www.dorilex.net
V_/  Software is a matter of freedom.

More information about the coreboot mailing list