[coreboot] GSoC 2010

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Tue Mar 9 03:50:57 CET 2010

On 09.03.2010 01:16, Joseph Smith wrote:
> On Mon, 8 Mar 2010 16:04:31 -0800, Ed Swierk <eswierk at aristanetworks.com>
> wrote:
>> On Sat, Mar 6, 2010 at 8:13 AM, Carl-Daniel Hailfinger
>> <c-d.hailfinger.devel.2006 at gmx.net> wrote:
>>> 2. Tiny flashrom stub for remote flashing over serial/network/whatever
>>> (~10 kB uncompressed and 3 kB lzma compressed, maybe even smaller).
>>> 3. Load flashrom from an external medium (serial/USB/floppy/whatever) to
>>> RAM and execute it (no space requirements).
>>> ...
>>> Variant 2 is essentially a stripped down SerialICE with one or two extra
>>> commands. Rather slow, but you can upgrade the controlling flashrom app
>>> on the master computer (and test patches) without having to mess with
>>> the contents of the flash in the slave (to be reflashed) computer.
>>> Besides that, it allows even such stuff as PCI card reflashing (for gPXE
>>> and stuff).
>>> Variant 3 has a high initial load time, but flashing will be fast. No
>>> guarantees on how to recover if flashrom crashes or exits prematurely,
>>> though.
>> I implemented a little hack a while ago that let you download a
>> payload via xmodem over serial:
>> http://www.coreboot.org/pipermail/coreboot/2006-October/016120.html

Right, I had remembered such a think existed, but didn't know where to look.

>> It looks like most of the code has since vanished, but the
>> xmodemReceive() function is still there, and might be useful for some
>> kind of last-ditch failover mechanism.

Absolutely. It is definitely good for payload/whateveryoucallit download
once CAR or RAM is working.

> We also have a small program on Set-Top-Linux to send flash commands to the
> original bios over Serial Console:
> http://www.settoplinux.org/index.php?title=RCA_RM4100:Howto_coreboot_and_Linux#Flash_the_bios
> You just copy bios image to drive, boot, and flash over serial console.
> It may be nothing, but it could be a start to something that could be used
> for recovery???

AFAICS the trick you mentioned works by uploading a small flasher
program to the RM4100 memory in a place where it overwrites existing
code, causing execution to continue at the inserted code. Very neat. It
needs a way to upload a program over serial to RAM to work at all, though.

Anyway, we'll see what the optimal solution is, and how it works out.
IMHO one key to success is to have multiple options, and enable some
sort of recovery for all of them.


"I do consider assignment statements and pointer variables to be among
computer science's most valuable treasures."
-- Donald E. Knuth

More information about the coreboot mailing list