Re: [PATCH] Enable console on PCI serial devices

From: n0ano
Date: Tue Oct 21 2008 - 16:09:21 EST


On Mon, Oct 20, 2008 at 01:11:05PM -0600, Bjorn Helgaas wrote:
>...
> Ideally we could put something in Documentation/kernel-parameters.txt
> that's useful for people who can't or don't want to look at
> the source.

How about this. I've modified the doc slightly to indicate that the
magic number is the base baud used to calculate the divsor used against
the crystal frequency. This should be sufficient for most people and
the curious should now have enough info to research the matter further.

Signed-off-by: Don Dugger <donald.d.dugger@xxxxxxxxx>

--
Don Dugger
"Censeo Toto nos in Kansa esse decisse." - D. Gale
n0ano@xxxxxxxxx
Ph: 303/443-3786

Documentation/kernel-parameters.txt | 14 +++++++++-----
drivers/serial/8250_early.c | 5 +++++
2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 82c561f..f07e77c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -505,12 +505,16 @@ and is between 256 and 4096 characters. It is defined in the file
Documentation/networking/netconsole.txt for an
alternative.

- uart[8250],io,<addr>[,options]
- uart[8250],mmio,<addr>[,options]
+ uart[8250],io,<addr>[,options[,base]]
+ uart[8250],mmio,<addr>[,options[,base]]
Start an early, polled-mode console on the 8250/16550
UART at the specified I/O port or MMIO address,
switching to the matching ttyS device later. The
- options are the same as for ttyS, above.
+ "options" are the same as for ttyS, above. "base"
+ is base baud, defaults to 115200, which is used to
+ calculate the divisor for the crystal frequency
+ (typically this is the fastest baud rate supported
+ by the uart).

If the device connected to the port is not a TTY but a braille
device, prepend "brl," before the device type, for instance
@@ -518,8 +522,8 @@ and is between 256 and 4096 characters. It is defined in the file
For now, only VisioBraille is supported.

earlycon= [KNL] Output early console device and options.
- uart[8250],io,<addr>[,options]
- uart[8250],mmio,<addr>[,options]
+ uart[8250],io,<addr>[,options,[base]]
+ uart[8250],mmio,<addr>[,options,[base]]
Start an early, polled-mode console on the 8250/16550
UART at the specified I/O port or MMIO address.
The options are the same as for ttyS, above.
diff --git a/drivers/serial/8250_early.c b/drivers/serial/8250_early.c
index f279745..edd5803 100644
--- a/drivers/serial/8250_early.c
+++ b/drivers/serial/8250_early.c
@@ -180,6 +180,11 @@ static int __init parse_options(struct early_serial8250_device *device,
snprintf(device->options, sizeof(device->options), "%u",
device->baud);
}
+ options = strchr(options, ',');
+ if (options) {
+ options++;
+ port->uartclk = simple_strtoul(options, NULL, 0) * 16;
+ }

printk(KERN_INFO "Early serial console at %s 0x%llx (options '%s')\n",
mmio ? "MMIO" : "I/O port",
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/