On Mon, Feb 23, 2009 at 10:43 AM, Myles Watson <[email protected]> wrote: > On Mon, Feb 23, 2009 at 10:22 AM, Stefan Reinauer <[email protected]> > 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.
Coreboot ROM Image with everything but HyperTransport: 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 0x0xda70 entry 0x0x2000 normal/stage2/segment1 (37468 bytes, lzma compressed to 19388 bytes @0x6c0);loadaddress 0x0x2000 entry 0x0x2000 normal/stage2/segment2 (6164 bytes, lzma compressed to 379 bytes @0x52d0);loadaddress 0x0xc25c entry 0x0x2000 bootblock (20480 bytes @0x3b000) Total size = 42068B 41KB (0xa454) Maybe this is a good middle ground. I haven't seen a PCI->HT bridge yet :) Thanks, Myles >>> 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 > -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

