Apparently serial console support was not added until a few months after the SeaBIOS revision used in release 20160907. As a result the only way to get a serial console is via SGABIOS (Serial Graphics Adapter BIOS) and setting some runtime configuration in CBFS. SeaBIOS' VGA adapter emulation on the serial port (set with runtime config option etc/sercon-port) may be possible for boards with native VGA init but is untested. The following instructions were tested on the KCMA-D8 but should apply to the KGPE-D16 as well.
Instructions for setting up the serial console using SGABIOS are as follows.
Clone the sgabios repo:
$ git clone https://review.coreboot.org/sgabios.git
cd into the directory and examine the sgabios.h file. Specifically, check that the defined serial port IO address and baud rate matches the one for your machine. By default sgabios assumes it is 0x3f8 and 115200, respectively, but you can easily check by examining dmesg(1) output:
$ dmesg | grep -ie ttyS0
[ 7.782838] 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
If any changes are necessary, modify the sgabios.h file before building with make all. The only file that's important is sgabios.bin which will be copied to CBFS as a VGA ROM.
$ ./cbfstool yourrom.rom add -f /path/to/sgabios.bin -n vgaroms/sgabios.bin -t optionrom
If you're using a KCMA-D8 or KGPE-D16 remove the VGA ROM already present in the image as it's useless and does nothing (native graphics init does not exist at this time).
$ ./cbfstool yourrom.rom remove -n vgaroms/vgabios.bin
Lastly, add the requisite runtime configuration to display and interact with the boot menu:
$ ./cbfstool yourrom.rom add-int -i 1 -n etc/show-boot-menu
$ ./cbfstool yourrom.rom add-int -i 5000 -n etc/boot-menu-wait
$ ./cbfstool yourrom.rom add-int -i 0 -n etc/screen-and-debug
Pad the image, if necessary, and reflash.
Perhaps existence of working video card can be detected from grub script, and serial can be enabled only then, as serial input can cause issues and delays
Coreboot output is fine and usually configurable through RTC NVRAM value (or perhaps that value NVRAM can be reused using cmostest)
Furthermore ThinkPads like X200 can detect operation without lid attached, and grub supports communication over net20dc (which can be used as drop-in replacement for nullmodem cable), so perhaps we can switch to that when lid isn't detected (or rely on whatever coreboot does to detect that, like seeing it detected in cbmem console).