On 31.03.2009 07:09, ron minnich wrote:
OK, this is going to be a question. Why am I suddenly back on v2? The reason is simple. We've been baking v3 for 30 months and ... we're not there except on a very few boards. Most vendors are still doing v2 for the most part. V2 has grown tremendously since Oct. 2006 when we designed v3. The development on v2 has been so good, in fact, that in many feature areas v2 is now far ahead of v3: ACPI, SMM, S3 resume, etc. etc.
To put it simply, I think we have to use v3 as the "good ideas and lessons learned" testbed, and bring ideas we learned from there back into v2. And that is what I am doing. LCAR is the first step.
I don't plan to put LCAR into v3. In fact I think I am done with v3. It was a beautiful thing but it is time to move forward and bring the good parts of v3 into v2 ... and realize that a lot of very fine work has been done on v2, and it's simply not possible at this point to move all that work to v3. We have to evolve, now, and do so in a way that merges the best ideas of v3 back into v2.
I don't think v3 will end. It is the definitive Geode platform, in my view. But the geode will end someday.
So I'm back.
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.
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.
I'm all for transforming the v2 codebase into v3 for easier transplantation if we reuse v3 code.
Regards, Carl-Daniel