After further debugging, found that register console fails at 'serial8250_console_setup'
Both port->iobase and port->membase are 0x0
static int __init serial8250_console_setup(struct console *co, char *options)
{
struct uart_port *port;
int baud = 9600;
int bits = 8;
int parity = 'n';
int flow = 'n';
printk(KERN_ERR "---> %s %d \n",__FUNCTION__,__LINE__);
/*
* Check whether an invalid uart number has been specified, and
* if so, search for the first available port that does have
* console support.
*/
if (co->index >= nr_uarts){
printk(KERN_ERR "---> %s %d \n",__FUNCTION__,__LINE__);
co->index = 0;
}
port = &serial8250_ports[co->index].port;
printk(KERN_ERR "---> %s %d index = %d\n",__FUNCTION__,__LINE__,co->index);
printk(KERN_ERR "---> %s %d name = %s\n",__FUNCTION__,__LINE__,co->name);
printk(KERN_ERR "---> %s %d port->iobase = %x\n",__FUNCTION__,__LINE__,port->iobase);
printk(KERN_ERR "---> %s %d port->membase = %x\n",__FUNCTION__,__LINE__,port->membase);
if (!port->iobase && !port->membase){
printk(KERN_ERR "---> %s %d \n",__FUNCTION__,__LINE__);
return -ENODEV; <--------------------------------------------------------------------------------- returns ENODEV
}
if (options){
printk(KERN_ERR "---> %s %d \n",__FUNCTION__,__LINE__);
uart_parse_options(options, &baud, &parity, &bits, &flow);
}
printk(KERN_ERR "before return ---> %s %d \n",__FUNCTION__,__LINE__);
return uart_set_options(port, co, baud, parity, bits, flow);
}
what could be the issue?