Am 31.03.2009 12:52, schrieb Carl-Daniel Hailfinger:
I'm very sad to hear this. Sure, I've seen that v3 didn't improve at the rate it used to. But although I've been active in coreboot for 3 years:
- I still do not understand the v2 build system.
- I still do not understand the v2 device model.
- I still do not understand the v2 Config.lb/Option.lb system.
- I still do not understand the v2 fallback/normal/failover model.
- I still do not understand the v2 design.
- I still do not understand how v2 CAR and normal code interact.
Every time I work on v2, I feel utterly incompetent. I just try to hack on it unintelligibly in the hope it doesn't explode in my face again and again. v2 is my personal motivation killer. Every time I work on v3, I feel I understand everything. Working on it is a pleasure and tracking down bugs is rather easy because of the clear structure.
Now if we can make v2 use the v3 device model, DTS, config system, build system, stage design, LAR, CAR, startup code, global variables, struct device and printk buffer, v2 will become bearable. But then v2 will essentially be transformed into what v3 is now with additional ports.
Yes, but what's easier: porting 200-or-so mainboards and chips with all their hidden workarounds to v3 or porting some design work in a comparably small kernel of generic code?
Bringing v3 concepts, but not code to v2 removes all implementation experience we have with those concepts. If we already built and reinvented the wheel multiple times and the last one works rather well, rebuilding and partly reinventing it again feels really futile.
LAR worked so well that there was a need to create ROMFS.
I'm all for transforming the v2 codebase into v3 for easier transplantation if we reuse v3 code.
And that's the idea. Just that in this case, there was some fix to shortcomings in LAR already (romfs was first proposed for v3, after all). This is only the first step in a longer plan of incremential improvements. And it's supposed to fix most of your issues above.
Patrick