[coreboot] [RFC] Re-thinking the stages
c-d.hailfinger.devel.2006 at gmx.net
Sun Apr 8 02:00:37 CEST 2012
Am 06.04.2012 22:38 schrieb ron minnich:
> On Fri, Apr 6, 2012 at 11:12 AM, Marc Jones <marcj303 at gmail.com> wrote:
>>> One such a nice app would be zmodem download of raminit.
>> This is an interesting thought, but really a debug/development
> We even talked about this in v3. But it never got done, seems there is
> no interest.
I think it didn't get done for the same reason we had to abandon v3:
lack of manpower. A few highly motivated developers spent pretty much
all of their time on v3, but bringing a completely new design and
codebase from zero to production was simply too big of a task, yielding
stable Qemu and GeodeLX ports but not much for other hardware. At the
same time, v2 was moving along and getting new hardware support all the
In the end, it was decided that the v2 codebase should get some of the
designs proven in v3, and thus v4 was born.
There is still some stuff I would love to prototype in v3 and then move
to v4, and downloading raminit is one of those features. However, I
won't have sufficient spare time this year to attempt that.
>> I am not convinced of the value of earlier serial console. It adds
>> complexity where things should be simple. I hesitate to continue
>> moving more code before CAR. We have had a long standing goal to
>> reduce code before CAR.
> CAR is fragile! I agree. It should be reduced as much as possible.
> You may want to look at what we did in v3, it has some similarities to
> your ideas. And, we dropped it :-)
We already have multiple pre-CAR serial consoles if you want to build
them: llshell, SerialICE and a few others. The trick is to integrate
them into the coreboot execution flow in a way which lets the boot
continue automatically in the normal case, and allow console access when
you need it.
>>> This also has a CAR and RAM environment (GCC-build) that can execute XIP
>>> stages from Flash ROM or decompress stages to CAR/RAM from Flash ROM.
>> At least with AMD processors, you can't execute code out of the data
>> cache. The only way to get instructions cached is with a code fetch,
>> which doesn't hit the data cache.
By the way, if you're into really weird stuff, you could try to work
around the apparent "data writes hit dcache, not icache" limitation by
running the downloaded code in x86emu in CAR because for x86emu the
emulated instructions are data. You'll need flameproof underwear if you
plan to submit such a patch, though.
More information about the coreboot