ConsoleTypes

From Linux PARISC Wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "We need to sort out our console setup so it's in a mergable state for upstream, and functional for us. A console is the 'back end' of `printk()`. Its job is to get character...")
 
m (formatting update)
 
Line 1: Line 1:
We need to sort out our console setup so it's in a mergable state for upstream, and functional for us.
+
We need to sort out our console setup so it's in a mergeable state for upstream, and functional for us.
  
A console is the 'back end' of `printk()`.  Its job is to get characters from the kernel to the user.
+
A console is the 'back end' of <tt>printk()</tt>.  Its job is to get characters from the kernel to the user.
 
There are several kinds of console supported:
 
There are several kinds of console supported:
  
Line 19: Line 19:
 
The PDC console is available at all times on all PA-RISC hardware.  We use it as an early debug console and as a system panic console.  It's not suited for use as a general purpose console as it has limited facilities for console input.
 
The PDC console is available at all times on all PA-RISC hardware.  We use it as an early debug console and as a system panic console.  It's not suited for use as a general purpose console as it has limited facilities for console input.
  
In order to initialise the GSC 8250 console, we need to find the GSC 8250 serial port which happens quite late in boot.  The same is true for the MUX console.  The Diva 8250 console is similar, though it is a PCI device.  SuperIO 8250 console gets initialised quite early as we know it is accessible at `0x3f8`.  The graphics consoles also happen a bit later during boot.
+
In order to initialize the GSC 8250 console, we need to find the GSC 8250 serial port which happens quite late in boot.  The same is true for the MUX console.  The Diva 8250 console is similar, though it is a PCI device.  SuperIO 8250 console gets initialized quite early as we know it is accessible at <tt>0x3f8</tt>.  The graphics consoles also happen a bit later during boot.
  
 
=== Issues ===
 
=== Issues ===
  
In order for us to get output as soon as possible, we should register the PDC console ASAP.  As other consoles come up, they are supposed to take over using the `CON_BOOT` mechanism (this has not been merged upstream yet).
+
In order for us to get output as soon as possible, we should register the PDC console ASAP.  As other consoles come up, they are supposed to take over using the <tt>CON_BOOT</tt> mechanism (this has not been merged upstream yet).
  
We export the `con_start` and `log_end` variables from `printk.c` so we avoid printing stuff twice.  Maybe we could use the PdcStableStorage driver to figure out which device was the real console and clear that device's `CON_PRINTBUFFER` flag?
+
We export the <tt>con_start</tt> and <tt>log_end</tt> variables from <tt>printk.c</tt> so we avoid printing stuff twice.  Maybe we could use the [[PdcStableStorage]] driver to figure out which device was the real console and clear that device's <tt>CON_PRINTBUFFER</tt> flag?
  
`pdc_console_die()` appears to be an unused function.
+
<tt>pdc_console_die()</tt> appears to be an unused function.

Latest revision as of 20:57, 30 May 2014

We need to sort out our console setup so it's in a mergeable state for upstream, and functional for us.

A console is the 'back end' of printk(). Its job is to get characters from the kernel to the user. There are several kinds of console supported:

  • PDC
  • 8250 serial
    • GSC
    • SuperIO
    • Diva
  • MUX serial
  • STI graphics
  • Framebuffer
    • STI
    • possibly other

The Emerald serial console is not yet supported. Linux has some other fun consoles we haven't played with yet like the parallel port console and netconsole.

The PDC console is available at all times on all PA-RISC hardware. We use it as an early debug console and as a system panic console. It's not suited for use as a general purpose console as it has limited facilities for console input.

In order to initialize the GSC 8250 console, we need to find the GSC 8250 serial port which happens quite late in boot. The same is true for the MUX console. The Diva 8250 console is similar, though it is a PCI device. SuperIO 8250 console gets initialized quite early as we know it is accessible at 0x3f8. The graphics consoles also happen a bit later during boot.

[edit] Issues

In order for us to get output as soon as possible, we should register the PDC console ASAP. As other consoles come up, they are supposed to take over using the CON_BOOT mechanism (this has not been merged upstream yet).

We export the con_start and log_end variables from printk.c so we avoid printing stuff twice. Maybe we could use the PdcStableStorage driver to figure out which device was the real console and clear that device's CON_PRINTBUFFER flag?

pdc_console_die() appears to be an unused function.

Personal tools