[coreboot] Plugin support

Myles Watson mylesgw at gmail.com
Mon Feb 23 18:43:23 CET 2009


On Mon, Feb 23, 2009 at 10:22 AM, Stefan Reinauer <stepan at coresystems.de> wrote:
> On 23.02.2009 18:04 Uhr, Myles Watson wrote:
>> I implemented the *_PLUGIN_SUPPORT config options for v3.  I thought
>> it was simple since I was just enabling the defines already in the
>> code.  In retrospect I may have implemented them backward.
>>
>> The space in the ROM consumed by PLUGIN_SUPPORT is very small if you
>> already have support for that bus.  If you don't have support for the
>> bus it could be significant.  I wanted to make it so that e.g.
>> HYPERTRANSPORT_PLUGIN_SUPPORT was the default if you had
>> HYPERTRANSPORT_SUPPORT.  I'd also like people to be able to select
>> CARDBUS_PLUGIN_SUPPORT or NO_CARDBUS_PLUGIN_SUPPORT.
>>
> How much code do all those "plugins" together consume, given you have a
> system with none of that buses in the dts?

Coreboot ROM Image (QEMU) with no plugin support:
  normal/option_table (932 bytes @0x50);loadaddress 0x0 entry 0x0
  normal/initram/segment0 (440 bytes @0x450);loadaddress 0x0 entry 0x0x20
  normal/stage2/segment0 (194780 bytes, zeroes compressed to 1 bytes
@0x660);loadaddress 0x0xd130 entry 0x0x2000
  normal/stage2/segment1 (35188 bytes, lzma compressed to 18410 bytes
@0x6c0);loadaddress 0x0x2000 entry 0x0x2000
  normal/stage2/segment2 (6076 bytes, lzma compressed to 360 bytes
@0x4f00);loadaddress 0x0xb974 entry 0x0x2000
  bootblock (20480 bytes @0x3b000)
Total size = 41071B 40KB (0xa06f)

Coreboot ROM Image with all plugins:
  normal/option_table (932 bytes @0x50);loadaddress 0x0 entry 0x0
  normal/initram/segment0 (440 bytes @0x450);loadaddress 0x0 entry 0x0x20
  normal/stage2/segment0 (194784 bytes, zeroes compressed to 1 bytes
@0x660);loadaddress 0x0xe1c0 entry 0x0x2000
  normal/stage2/segment1 (39340 bytes, lzma compressed to 20416 bytes
@0x6c0);loadaddress 0x0x2000 entry 0x0x2000
  normal/stage2/segment2 (6164 bytes, lzma compressed to 376 bytes
@0x56d0);loadaddress 0x0xc9ac entry 0x0x2000
  bootblock (20480 bytes @0x3b000)
Total size = 43093B 42KB (0xa855)

It looks like about 2K.  In order for it to build I had to define a
few HT-specific things and put in  an empty mainboard.h, but it won't
be hard if we want to make it the default to always include all buses.

>> Maybe we could get rid of the *PLUGIN_SUPPORT options all together and
>> just allow the developer to select CARDBUS_SUPPORT or
>> REMOVE_CARDBUS_SUPPORT directly?  We don't want people to deselect
>> HYPERTRANSPORT_SUPPORT when they have an Opteron, though.
>>
>
> If we're talking about a significant amount of code that is disabled, I
> tend to agree. On the other hand, Ron brought up the very valuable point
> that we want to try remove as many conditional compilations as possible
> to keep the code simple (and: testable)

the fewer #ifdefs the better for me too.

>> Could I get some feedback on what people want?  It's very low on my
>> priority list, but I'm willing to take ownership since I put it there.
>>
> Sure.. :-)

Thanks,
Myles




More information about the coreboot mailing list