|
@@ -58,7 +58,19 @@ static void parse_earlyprintk(void)
|
|
|
if (arg[pos] == ',')
|
|
|
pos++;
|
|
|
|
|
|
- if (!strncmp(arg + pos, "ttyS", 4)) {
|
|
|
+ /*
|
|
|
+ * make sure we have
|
|
|
+ * "serial,0x3f8,115200"
|
|
|
+ * "serial,ttyS0,115200"
|
|
|
+ * "ttyS0,115200"
|
|
|
+ */
|
|
|
+ if (pos == 7 && !strncmp(arg + pos, "0x", 2)) {
|
|
|
+ port = simple_strtoull(arg + pos, &e, 16);
|
|
|
+ if (port == 0 || arg + pos == e)
|
|
|
+ port = DEFAULT_SERIAL_PORT;
|
|
|
+ else
|
|
|
+ pos = e - arg;
|
|
|
+ } else if (!strncmp(arg + pos, "ttyS", 4)) {
|
|
|
static const int bases[] = { 0x3f8, 0x2f8 };
|
|
|
int idx = 0;
|
|
|
|