From 441b90e6c950cff5ecb63ebf8308e0a755d1a2bb Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Wed, 1 Feb 2012 14:32:28 -0600 Subject: Correct run-time selection of console port. This was broken by conversion of console driver to libchip style. --- c/src/lib/libbsp/i386/pc386/Makefile.am | 2 +- c/src/lib/libbsp/i386/pc386/console/console.c | 543 --------------------- .../lib/libbsp/i386/pc386/console/console_select.c | 157 ++++++ .../lib/libbsp/i386/pc386/console/printk_support.c | 39 +- c/src/lib/libbsp/i386/pc386/include/bsp.h | 9 + c/src/lib/libbsp/i386/pc386/start/start.S | 1 - 6 files changed, 190 insertions(+), 561 deletions(-) delete mode 100644 c/src/lib/libbsp/i386/pc386/console/console.c create mode 100644 c/src/lib/libbsp/i386/pc386/console/console_select.c (limited to 'c/src/lib/libbsp/i386/pc386') diff --git a/c/src/lib/libbsp/i386/pc386/Makefile.am b/c/src/lib/libbsp/i386/pc386/Makefile.am index 9a0e9423d9..d0c1d35eda 100644 --- a/c/src/lib/libbsp/i386/pc386/Makefile.am +++ b/c/src/lib/libbsp/i386/pc386/Makefile.am @@ -79,7 +79,7 @@ libbsp_a_SOURCES += console/inch.c console/outch.c \ console/vgainit.c console/vt.c console/videoAsm.S \ console/kbd_parser.c console/serial_mouse_config.c \ ../../i386/shared/comm/uart.c ../../i386/shared/comm/tty_drv.c \ - ../../shared/console.c ../../shared/console_select.c \ + ../../shared/console.c console/console_select.c \ ../../shared/console_read.c ../../shared/console_write.c \ console/console_control.c console/conscfg.c console/printk_support.c \ console/vgacons.c diff --git a/c/src/lib/libbsp/i386/pc386/console/console.c b/c/src/lib/libbsp/i386/pc386/console/console.c deleted file mode 100644 index 97e8b8f759..0000000000 --- a/c/src/lib/libbsp/i386/pc386/console/console.c +++ /dev/null @@ -1,543 +0,0 @@ -/*-------------------------------------------------------------------------+ -| This file contains the PC386 console I/O package. -+--------------------------------------------------------------------------+ -| (C) Copyright 1997 - -| - NavIST Group - Real-Time Distributed Systems and Industrial Automation -| -| http://pandora.ist.utl.pt -| -| Instituto Superior Tecnico * Lisboa * PORTUGAL -+--------------------------------------------------------------------------+ -| Disclaimer: -| -| This file is provided "AS IS" without warranty of any kind, either -| expressed or implied. -+--------------------------------------------------------------------------+ -| This code was based on code from the go32 BSP and was copyright by OAR. -| Subsequent modifications are also copyright OAR. -| -| COPYRIGHT (c) 1989-2011. -| On-Line Applications Research Corporation (OAR). -| -| The license and distribution terms for this file may be -| found in the file LICENSE in this distribution or at -| http://www.rtems.com/license/LICENSE. -| -| -| $Id$ -+--------------------------------------------------------------------------*/ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/* - * Possible value for console input/output : - * BSP_CONSOLE_PORT_CONSOLE - * BSP_UART_COM1 - * BSP_UART_COM2 - * - * Note: - * 1. Currently BSPPrintkPort, cannot be assigned to COM2, - * it will be fixed soon. - * - * 2. If both BSPConsolePort and BSPPrintkport are assigned - * to same serial device it does not work that great - */ - -#if (USE_COM1_AS_CONSOLE == 1) -int BSPConsolePort = BSP_UART_COM1; -int BSPPrintkPort = BSP_UART_COM1; -#else -int BSPConsolePort = BSP_CONSOLE_PORT_CONSOLE; -int BSPPrintkPort = BSP_CONSOLE_PORT_CONSOLE; -#endif - -int BSPBaseBaud = 115200; -int BSPCmdBaud = 9600; - - -/* printk support */ -BSP_output_char_function_type BSP_output_char = - (BSP_output_char_function_type) _IBMPC_outch; - -BSP_polling_getchar_function_type BSP_poll_char = BSP_wait_polled_input; - -/*-------------------------------------------------------------------------+ -| External Prototypes -+--------------------------------------------------------------------------*/ -static int conSetAttr(int minor, const struct termios *); - -/* - * Keyboard Interrupt Configuration - */ -static void -isr_on(const rtems_irq_connect_data *unused) -{ - return; -} - -static void -isr_off(const rtems_irq_connect_data *unused) -{ - return; -} - -static int -isr_is_on(const rtems_irq_connect_data *irq) -{ - return BSP_irq_enabled_at_i8259s(irq->name); -} - -static rtems_irq_connect_data console_isr_data = - {BSP_KEYBOARD, - keyboard_interrupt, - 0, - isr_on, - isr_off, - isr_is_on}; - -static ssize_t -ibmpc_console_write(int minor, const char *buf, size_t len) -{ - size_t count; - for (count = 0; count < len; count++) - { - _IBMPC_outch( buf[ count ] ); - if( buf[ count ] == '\n') - _IBMPC_outch( '\r' ); /* LF = LF + CR */ - } - return count; -} - -int kbd_poll_read( int minor ) -{ - if( rtems_kbpoll() ) - { - int c = getch(); - return c; - } - return -1; -} - -/* provide default that does nothing */ -extern void -BSP_runtime_console_select(int *, int *) __attribute__((weak)); - -/* provide routine to select console; this - * is called very early so that early boot - * messages also make it to the redirected - * device. - */ -void -BSP_console_select(void) -{ - const char* opt; - - /* - * Check the command line for the type of mode the console is. - */ - opt = bsp_cmdline_arg ("--console="); - - if (opt) - { - const char* comma; - - opt += sizeof ("--console=") - 1; - if (strncmp (opt, "console", sizeof ("console") - 1) == 0) - { - BSPConsolePort = BSP_CONSOLE_PORT_CONSOLE; - BSPPrintkPort = BSP_CONSOLE_PORT_CONSOLE; - } - else if (strncmp (opt, "com1", sizeof ("com1") - 1) == 0) - { - BSPConsolePort = BSP_UART_COM1; - BSPPrintkPort = BSP_UART_COM1; - } - else if (strncmp (opt, "com2", sizeof ("com2") - 1) == 0) - { - BSPConsolePort = BSP_UART_COM2; - BSPPrintkPort = BSP_UART_COM2; - } - - comma = strchr (opt, ','); - - if (comma) - { - comma += 1; - if (strncmp (opt, "115200", sizeof ("115200") - 1) == 0) - BSPCmdBaud = 115200; - else if (strncmp (opt, "57600", sizeof ("57600") - 1) == 0) - BSPCmdBaud = 57600; - else if (strncmp (opt, "38400", sizeof ("38400") - 1) == 0) - BSPCmdBaud = 38400; - else if (strncmp (opt, "19200", sizeof ("19200") - 1) == 0) - BSPCmdBaud = 19200; - else if (strncmp (opt, "9600", sizeof ("9600") - 1) == 0) - BSPCmdBaud = 9600; - else if (strncmp (opt, "4800", sizeof ("4800") - 1) == 0) - BSPCmdBaud = 9600; - } - } - - if ( BSP_runtime_console_select ) - BSP_runtime_console_select(&BSPPrintkPort, &BSPConsolePort); - -#ifdef RTEMS_RUNTIME_CONSOLE_SELECT - /* - * If no video card, fall back to serial port console - */ -#include - if((BSPConsolePort == BSP_CONSOLE_PORT_CONSOLE) - && (*(unsigned char*) NB_MAX_ROW_ADDR == 0) - && (*(unsigned short*)NB_MAX_COL_ADDR == 0)) { - BSPConsolePort = BSP_UART_COM2; - BSPPrintkPort = BSP_UART_COM1; - } -#endif - - if(BSPPrintkPort == BSP_UART_COM1) - { - printk("Initializing console on port COM1 %d-8-N-1\n\n", BSPCmdBaud); - printk("Warning : This will be the last message on console\n"); - - /* - * FIXME: cast below defeats the very idea of having - * function pointer types defined - */ - BSP_output_char = (BSP_output_char_function_type) - BSP_output_char_via_serial; - BSP_poll_char = (BSP_polling_getchar_function_type) - BSP_poll_char_via_serial; - } - else if(BSPPrintkPort != BSP_CONSOLE_PORT_CONSOLE) - { - printk("illegal assignement of printk channel"); - /* just skip; at this early stage we don't want - * to call rtems_fatal_error_occurred(). - */ - } -} - -/*-------------------------------------------------------------------------+ -| Console device driver INITIALIZE entry point. -+--------------------------------------------------------------------------+ -| Initilizes the I/O console (keyboard + VGA display) driver. -+--------------------------------------------------------------------------*/ -rtems_device_driver -console_initialize(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - rtems_status_code status; - - - /* Initialize the KBD interface */ - kbd_init(); - - /* - * Set up TERMIOS - */ - rtems_termios_initialize (); - - /* - * The video was initialized in the start.s code and does not need - * to be reinitialized. - */ - - if(BSPConsolePort == BSP_CONSOLE_PORT_CONSOLE) - { - /* Install keyboard interrupt handler */ - status = BSP_install_rtems_irq_handler(&console_isr_data); - - if (!status) - { - printk("Error installing keyboard interrupt handler!\n"); - rtems_fatal_error_occurred(status); - } - - status = rtems_io_register_name("/dev/console", major, 0); - if (status != RTEMS_SUCCESSFUL) - { - printk("Error registering console device!\n"); - rtems_fatal_error_occurred(status); - } - printk("Initialized console on port CONSOLE\n\n"); - } - else - { - /* - * Do device-specific initialization - */ - /* BSPCmdBaud-8-N-1 */ - BSP_uart_init(BSPConsolePort, BSPCmdBaud, CHR_8_BITS, 0, 0, 0); - - /* Set interrupt handler */ - if(BSPConsolePort == BSP_UART_COM1) - { - console_isr_data.name = BSP_UART_COM1_IRQ; - console_isr_data.hdl = BSP_uart_termios_isr_com1; - - } - else - { - assert(BSPConsolePort == BSP_UART_COM2); - console_isr_data.name = BSP_UART_COM2_IRQ; - console_isr_data.hdl = BSP_uart_termios_isr_com2; - } - status = BSP_install_rtems_irq_handler(&console_isr_data); - - if (!status){ - printk("Error installing serial console interrupt handler!\n"); - rtems_fatal_error_occurred(status); - } - /* - * Register the device - */ - status = rtems_io_register_name ("/dev/console", major, 0); - if (status != RTEMS_SUCCESSFUL) - { - printk("Error registering console device!\n"); - rtems_fatal_error_occurred (status); - } - - if(BSPConsolePort == BSP_UART_COM1) - { - printk("Initialized console on port COM1 %d-8-N-1\n\n", BSPCmdBaud); - } - else - { - printk("Initialized console on port COM2 %d-8-N-1\n\n", BSPCmdBaud); - } - } - - if(BSPPrintkPort != BSP_CONSOLE_PORT_CONSOLE && BSPPrintkPort != BSP_UART_COM1) - { - printk("illegal assignement of printk channel"); - rtems_fatal_error_occurred (status); - } - - return RTEMS_SUCCESSFUL; -} /* console_initialize */ - -static int console_open_count = 0; - -static int console_last_close(int major, int minor, void *arg) -{ - BSP_remove_rtems_irq_handler (&console_isr_data); - - return 0; -} - -static int ser_console_first_open(int major, int minor, void *arg) -{ - /* - * Pass data area info down to driver - */ - BSP_uart_termios_set(BSPConsolePort, - ((rtems_libio_open_close_args_t *)arg)->iop->data1); - - /* Enable interrupts on channel */ - BSP_uart_intr_ctrl(BSPConsolePort, BSP_UART_INTR_CTRL_TERMIOS); - - return 0; -} - -/*-------------------------------------------------------------------------+ -| Console device driver OPEN entry point -+--------------------------------------------------------------------------*/ -rtems_device_driver -console_open(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - rtems_status_code status; - static rtems_termios_callbacks cb = - { - NULL, /* firstOpen */ - console_last_close, /* lastClose */ - NULL, /* pollRead */ - BSP_uart_termios_write_com1, /* write */ - conSetAttr, /* setAttributes */ - NULL, /* stopRemoteTx */ - NULL, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ - }; - - if(BSPConsolePort == BSP_CONSOLE_PORT_CONSOLE) - { - - /* Let's set the routines for termios to poll the - * Kbd queue for data - */ - cb.pollRead = kbd_poll_read; - cb.outputUsesInterrupts = 0; - /* write the "echo" if it is on */ - cb.write = ibmpc_console_write; - - cb.setAttributes = NULL; - ++console_open_count; - status = rtems_termios_open (major, minor, arg, &cb); - if(status != RTEMS_SUCCESSFUL) - { - printk("Error openning console device\n"); - } - return status; - } - - if(BSPConsolePort == BSP_UART_COM2) - { - cb.write = BSP_uart_termios_write_com2; - } - - cb.firstOpen = ser_console_first_open; - - status = rtems_termios_open (major, minor, arg, &cb); - - if(status != RTEMS_SUCCESSFUL) - { - printk("Error openning console device\n"); - return status; - } - - return RTEMS_SUCCESSFUL; -} - -/*-------------------------------------------------------------------------+ -| Console device driver CLOSE entry point -+--------------------------------------------------------------------------*/ -rtems_device_driver -console_close(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - return rtems_termios_close (arg); -} /* console_close */ - -/*-------------------------------------------------------------------------+ -| Console device driver READ entry point. -+--------------------------------------------------------------------------+ -| Read characters from the I/O console. We only have stdin. -+--------------------------------------------------------------------------*/ -rtems_device_driver -console_read(rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg) -{ - return rtems_termios_read( arg ); -} /* console_read */ - -/*-------------------------------------------------------------------------+ -| Console device driver WRITE entry point. -+--------------------------------------------------------------------------+ -| Write characters to the I/O console. Stderr and stdout are the same. -+--------------------------------------------------------------------------*/ -rtems_device_driver -console_write(rtems_device_major_number major, - rtems_device_minor_number minor, - void * arg) -{ - rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *)arg; - char *buffer = rw_args->buffer; - int maximum = rw_args->count; - - if(BSPConsolePort != BSP_CONSOLE_PORT_CONSOLE) - { - return rtems_termios_write (arg); - } - - /* write data to VGA */ - ibmpc_console_write( minor, buffer, maximum ); - rw_args->bytes_moved = maximum; - return RTEMS_SUCCESSFUL; -} /* console_write */ - -/* - * Handle ioctl request. - */ -rtems_device_driver -console_control(rtems_device_major_number major, - rtems_device_minor_number minor, - void * arg -) -{ - rtems_libio_ioctl_args_t *args = arg; - switch (args->command) - { - default: - if( vt_ioctl( args->command, (unsigned long)args->buffer ) != 0 ) - return rtems_termios_ioctl (arg); - break; - - case MW_UID_REGISTER_DEVICE: - printk( "SerialMouse: reg=%s\n", args->buffer ); - register_kbd_msg_queue( args->buffer, 0 ); - break; - - case MW_UID_UNREGISTER_DEVICE: - unregister_kbd_msg_queue( 0 ); - break; - } - args->ioctl_return = 0; - return RTEMS_SUCCESSFUL; -} - -static int -conSetAttr(int minor, const struct termios *t) -{ - unsigned long baud, databits, parity, stopbits; - - baud = rtems_termios_baud_to_number(t->c_cflag & CBAUD); - if ( baud > 115200 ) - return RTEMS_INVALID_NUMBER; - - if (t->c_cflag & PARENB) { - /* Parity is enabled */ - if (t->c_cflag & PARODD) { - /* Parity is odd */ - parity = PEN; - } - else { - /* Parity is even */ - parity = PEN | EPS; - } - } - else { - /* No parity */ - parity = 0; - } - - switch (t->c_cflag & CSIZE) { - case CS5: databits = CHR_5_BITS; break; - case CS6: databits = CHR_6_BITS; break; - case CS7: databits = CHR_7_BITS; break; - default: /* just to avoid warnings -- all cases are covered. */ - case CS8: databits = CHR_8_BITS; break; - } - - if (t->c_cflag & CSTOPB) { - /* 2 stop bits */ - stopbits = STB; - } - else { - /* 1 stop bit */ - stopbits = 0; - } - - BSP_uart_set_attributes(BSPConsolePort, baud, databits, parity, stopbits); - - return 0; -} diff --git a/c/src/lib/libbsp/i386/pc386/console/console_select.c b/c/src/lib/libbsp/i386/pc386/console/console_select.c new file mode 100644 index 0000000000..e1703f7249 --- /dev/null +++ b/c/src/lib/libbsp/i386/pc386/console/console_select.c @@ -0,0 +1,157 @@ +/** + * @file + * + * @ingroup Console + * + * @brief Generic libchip console select + */ + +/* + * This file contains a routine to select the + * console based upon a number of criteria. + * + * COPYRIGHT (c) 2011. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id: console_select.c,v 1.1 2012/02/01 16:03:14 jennifer Exp $ + */ + +#include +#include +#include +#include +#include + +#include +#include +#include "../../../shared/console_private.h" +#ifdef RTEMS_RUNTIME_CONSOLE_SELECT + #include +#endif + +/* + * Method to return true if the device associated with the + * minor number probs available. + */ +static bool bsp_Is_Available( rtems_device_minor_number minor ) +{ + console_tbl *cptr = Console_Port_Tbl[minor]; + + /* + * First perform the configuration dependent probe, then the + * device dependent probe + */ + if ((!cptr->deviceProbe || cptr->deviceProbe(minor)) && + cptr->pDeviceFns->deviceProbe(minor)) { + return true; + } + return false; +} + +/* + * Method to return the first available device. + */ +static rtems_device_minor_number bsp_First_Available_Device( void ) +{ + rtems_device_minor_number minor; + + for (minor=0; minor < Console_Port_Count ; minor++) { + console_tbl *cptr = Console_Port_Tbl[minor]; + + /* + * First perform the configuration dependent probe, then the + * device dependent probe + */ + + if ((!cptr->deviceProbe || cptr->deviceProbe(minor)) && + cptr->pDeviceFns->deviceProbe(minor)) { + return minor; + } + } + + /* + * Error No devices were found. We will want to bail here. + */ + rtems_fatal_error_occurred(RTEMS_IO_ERROR); +} + +void bsp_console_select(void) +{ + static const char* opt; + + /* + * Check the command line for the type of mode the console is. + */ + opt = bsp_cmdline_arg ("--console="); + + if (opt) { + const char* comma; + + opt += sizeof ("--console=") - 1; + if (strncmp (opt, "console", sizeof ("console") - 1) == 0) { + Console_Port_Minor = BSP_CONSOLE_VGA; + BSPPrintkPort = BSP_CONSOLE_VGA; + } else if (strncmp (opt, "com1", sizeof ("com1") - 1) == 0) { + Console_Port_Minor = BSP_CONSOLE_COM1; + BSPPrintkPort = BSP_CONSOLE_COM1; + } else if (strncmp (opt, "com2", sizeof ("com2") - 1) == 0) { + Console_Port_Minor = BSP_CONSOLE_COM2; + BSPPrintkPort = BSP_CONSOLE_COM2; + } + + comma = strchr (opt, ','); + + if (comma) { + console_tbl *conscfg; + + comma += 1; + conscfg = &Console_Configuration_Ports[Console_Port_Minor]; + if (strncmp (opt, "115200", sizeof ("115200") - 1) == 0) + conscfg->pDeviceParams = (void *)115200; + else if (strncmp (opt, "57600", sizeof ("57600") - 1) == 0) + conscfg->pDeviceParams = (void *)57600; + else if (strncmp (opt, "38400", sizeof ("38400") - 1) == 0) + conscfg->pDeviceParams = (void *)38400; + else if (strncmp (opt, "19200", sizeof ("19200") - 1) == 0) + conscfg->pDeviceParams = (void *)19200; + else if (strncmp (opt, "9600", sizeof ("9600") - 1) == 0) + conscfg->pDeviceParams = (void *)9600; + else if (strncmp (opt, "4800", sizeof ("4800") - 1) == 0) + conscfg->pDeviceParams = (void *)4800; + } + } + + #ifdef RTEMS_RUNTIME_CONSOLE_SELECT + if ( BSP_runtime_console_select ) + BSP_runtime_console_select(&BSPPrintkPort, &Console_Port_Minor); + + /* + * If no video card, fall back to serial port console + */ + if((Console_Port_Minor == BSP_CONSOLE_VGA) + && (*(unsigned char*) NB_MAX_ROW_ADDR == 0) + && (*(unsigned short*)NB_MAX_COL_ADDR == 0)) { + Console_Port_Minor = BSP_CONSOLE_COM2; + BSPPrintkPort = BSP_CONSOLE_COM1; + } + #endif + + /* + * If the device that was selected isn't available then + * let the user know and select the first available device. + */ + if ( !bsp_Is_Available( Console_Port_Minor ) ) { + printk( + "Error finding %s setting console to first available\n", + Console_Port_Tbl[Console_Port_Minor]->sDeviceName + ); + Console_Port_Minor = bsp_First_Available_Device(); + } + + if (opt != NULL) + printk("cmdline==>%s<<==\n", opt); +} diff --git a/c/src/lib/libbsp/i386/pc386/console/printk_support.c b/c/src/lib/libbsp/i386/pc386/console/printk_support.c index 4e478ebaa5..2a5e5fc762 100644 --- a/c/src/lib/libbsp/i386/pc386/console/printk_support.c +++ b/c/src/lib/libbsp/i386/pc386/console/printk_support.c @@ -22,9 +22,7 @@ #include #include #include - -BSP_output_char_function_type BSP_output_char = _IBMPC_outch; -BSP_polling_getchar_function_type BSP_poll_char = BSP_wait_polled_input; +#include "../../../shared/console_private.h" rtems_device_minor_number BSPPrintkPort = 0; @@ -32,26 +30,35 @@ int ns16550_inbyte_nonblocking_polled( int minor ); -void BSP_com_outch(char ch) -{ - console_tbl *cptr; +void BSP_outch(char ch); +int BSP_inch(void); - cptr = &Console_Configuration_Ports[BSPPrintkPort]; +void BSP_outch(char ch) +{ + if ( BSPPrintkPort == BSP_CONSOLE_VGA ) { + _IBMPC_outch( ch ); + } else { + console_tbl *cptr; - return cptr->pDeviceFns->deviceWritePolled( BSPPrintkPort, ch ); + cptr = &Console_Configuration_Ports[BSPPrintkPort]; + cptr->pDeviceFns->deviceWritePolled( BSPPrintkPort, ch ); + } } -int BSP_com_inch( void ) +int BSP_inch(void) { int result; - console_tbl *cptr; - - cptr = &Console_Configuration_Ports[BSPPrintkPort]; - - do { - result = ns16550_inbyte_nonblocking_polled( BSPPrintkPort ); - } while (result == -1); + if ( BSPPrintkPort == BSP_CONSOLE_VGA ) { + result = BSP_wait_polled_input(); + } else { + do { + result = ns16550_inbyte_nonblocking_polled( BSPPrintkPort ); + } while (result == -1); + } return result; } +BSP_output_char_function_type BSP_output_char = BSP_outch; +BSP_polling_getchar_function_type BSP_poll_char = BSP_inch; + diff --git a/c/src/lib/libbsp/i386/pc386/include/bsp.h b/c/src/lib/libbsp/i386/pc386/include/bsp.h index 8d8223da63..4b9c224594 100644 --- a/c/src/lib/libbsp/i386/pc386/include/bsp.h +++ b/c/src/lib/libbsp/i386/pc386/include/bsp.h @@ -133,6 +133,15 @@ extern int rtems_dec21140_driver_attach(struct rtems_bsdnet_ifconfig *, int); #define TIMER_TICK 1193182 /* The internal tick rate in ticks per second */ +/*-------------------------------------------------------------------------+ +| Console Defines +| WARNING: These Values MUST match the order in +| Console_Configuration_Ports ++--------------------------------------------------------------------------*/ +#define BSP_CONSOLE_VGA 0 +#define BSP_CONSOLE_COM1 1 +#define BSP_CONSOLE_COM2 2 + /*-------------------------------------------------------------------------+ | Macros +--------------------------------------------------------------------------*/ diff --git a/c/src/lib/libbsp/i386/pc386/start/start.S b/c/src/lib/libbsp/i386/pc386/start/start.S index e6a14be6de..42604bbff1 100644 --- a/c/src/lib/libbsp/i386/pc386/start/start.S +++ b/c/src/lib/libbsp/i386/pc386/start/start.S @@ -68,7 +68,6 @@ BEGIN_CODE EXTERN (_IBMPC_initVideo) EXTERN (debugPollingGetChar) EXTERN (checkCPUtypeSetCr0) - EXTERN (BSP_console_select) EXTERN (printk) #ifdef __SSE__ EXTERN (x86_capability) -- cgit v1.2.3