I'm very concerned with compatibility. You can't guarantee that coreboot and payload match. And in case of mismatch you get a memory corruption that is very hard to trace. Can we please change signature of cbmem entry?
I would rather allow older implementations to continue working as best as possible. Changing the signature would mean that an old payload (or 'cbmem' command line tool, etc.) couldn't interoperate at all with the console. The changes I made are as backwards-compatible as possible: in many cases (e.g. before the console rolled over once) the old payload will continue working just fine. If the console did roll over, the old payload can no longer append lines and may print existing contents out of order. It will never access invalid memory, though. (You may have been worried about bit 31 I'm setting in the "cursor" field, but all existing implementations were already required to check (cursor < size) before trusting the cursor to be accessible since the old console would continue counting characters even after the buffer filled up.)
You mentioned having trouble building GRUB. Can you detail those? What do you mean by not having hardware supported by grub-coreboot? Grub-coreboot should work on all coreboot-supported boards.
I am able to build it, I just had to figure out how and install some dependencies. But I tried booting it on an HP Chromebook 14 2013 (falco) and it doesn't seem to recognize my keyboard and will reboot a few seconds after displaying the GRUB console. (Most of the devices I have are ARM unfortunately, which I'm assuming it doesn't support since all the coreboot code is in i386 directories? And even if it did, it probably wouldn't have a keyboard driver for them either. I assume there's no way to make it run over the UART instead?)