On Thu, 2016-07-21 at 04:19 -0700, Josh Triplett wrote: > > I've run into various cases where "console=ttyS0,115200" didn't produce > any serial output at all, but "earlyprintk=ttyS0,115200,keep" did. Note that those are very different things. Because 'ttyS0' for earlyprintk really means '16x50 UART at 0x3f8'. While the later one actually depends on it being discovered by the various options we have for finding them, some of which are only available quite late. > Perhaps "earlyprintk" expects less from the serial port than "console" > does, but that suggests that the differences involve more than just how > early the driver can work. There *are* differences, yes. But they are almost entirely gratuitous. Fundamentally, the only interesting thing is how early the driver can shovel bits out the port, and thus how early it can be registered. In the case of serial ports, we can register the console early and just need to sure it keeps working when the driver is *later* fully initialised. It's slightly more fun in cases like the bootx console which actually does stop working when the graphics hardware is properly set up, but that's not really hard to cope with in the generic code either; it doesn't need to be *such* a horrid mess of special handling. -- dwmw2