Separately, how will sercon get the serial port that it is to use?
Looking closer at patch 4 I see:
+ u16 addr = PORT_SERIAL1; + SET_LOW(sercon_port, addr);
Is the plan to pull this from a romfile so that it can be set on coreboot? If so, perhaps that functionality could be merged with "etc/sercon-enable" so that coreboot users need only set one cbfs file.
No concrete plan yet, other than that I've added a variable for the port intentionally so runtime configuration can be added easily.
One option would be to have a etc/sercon-ioport file, which will both enable sercon and specify the io port address.
We could also depend on detect_serial() and lookup the detected io port address via GET_BDA(port_com[count]).
There is also the question if and how we'll go support non-isa serial ports. qemu also has pci-serial for example. serial-over-lan virtual ports typically show up as pci device too.