Changeset f164a294 in rtems


Ignore:
Timestamp:
03/10/17 14:32:38 (7 years ago)
Author:
Martin Aberg <maberg@…>
Branches:
5, master
Children:
3df6710
Parents:
6e2e1299
git-author:
Martin Aberg <maberg@…> (03/10/17 14:32:38)
git-committer:
Daniel Hellstrom <daniel@…> (05/02/17 10:34:46)
Message:

leon, apbuart: Inherit HW parameters on sysconsole

The cons layer decides which of the registered console device is granted as
system console. When a device specific console driver performs its first_open,
it inherits UART parameters from boot loader only if it is the system console.

Location:
c/src/lib/libbsp/sparc/shared
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/sparc/shared/include/cons.h

    r6e2e1299 rf164a294  
    2121struct console_dev;
    2222
    23 #define CONSOLE_FLAG_SYSCON      0x01
     23#define CONSOLE_FLAG_SYSCON             0x01
     24#define CONSOLE_FLAG_SYSCON_GRANT       0x02
    2425
    2526struct console_dev {
    2627        rtems_termios_device_context base;
    27         /* Set to CONSOLE_FLAG_SYSCON if this UART should be system console and/or
    28          * debug console.
     28        /* Set CONSOLE_FLAG_SYSCON to request this device to be system console
     29         * and/or debug console. CONSOLE_FLAG_SYSCON_GRANT will be set on the
     30         * device which was selected as system console.
    2931         */
    3032        int flags;
  • c/src/lib/libbsp/sparc/shared/uart/apbuart_cons.c

    r6e2e1299 rf164a294  
    441441        uart->tty = tty;
    442442
    443         /* Preserve values set by bootloader */
    444         get_attributes(base, term);
    445         term->c_oflag |= ONLCR;
    446         set_attributes(base, term);
     443        /* Inherit UART hardware parameters from bootloader on system console */
     444        if (uart->condev.flags & CONSOLE_FLAG_SYSCON_GRANT) {
     445                get_attributes(base, term);
     446                term->c_oflag |= ONLCR;
     447                set_attributes(base, term);
     448        }
    447449
    448450        /* Enable TX/RX */
  • c/src/lib/libbsp/sparc/shared/uart/cons.c

    r6e2e1299 rf164a294  
    9090                return;
    9191        }
     92        dev->flags &= ~CONSOLE_FLAG_SYSCON_GRANT;
     93        if (con->flags & FLAG_SYSCON) {
     94                dev->flags |= CONSOLE_FLAG_SYSCON_GRANT;
     95        }
    9296
    9397        /* Assign Console */
Note: See TracChangeset for help on using the changeset viewer.