diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/Makefile.in | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/clock/ckinit.c | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/console/console.c | 89 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/include/bsp.h | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/start/Makefile.in | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/start/start16.s | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/Makefile.in | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/bspstart.c | 1 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/exit.c | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/linkcmds | 1 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/timer/timer.c | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in | 2 |
12 files changed, 70 insertions, 61 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/Makefile.in b/c/src/lib/libbsp/i386/pc386/Makefile.in index 4862454e13..68582b5145 100644 --- a/c/src/lib/libbsp/i386/pc386/Makefile.in +++ b/c/src/lib/libbsp/i386/pc386/Makefile.in @@ -17,5 +17,5 @@ NETWORK = $(NETWORK_$(HAS_NETWORKING)_V) # wrapup is the one that actually builds and installs the library # from the individual .rel files built in other directories -SUB_DIRS=include tools start startup clock console timer pc386dev $(NETWORK) \ +SUB_DIRS=include tools start startup clock console timer $(NETWORK) \ wrapup diff --git a/c/src/lib/libbsp/i386/pc386/clock/ckinit.c b/c/src/lib/libbsp/i386/pc386/clock/ckinit.c index f3687d1e66..ee252a1e44 100644 --- a/c/src/lib/libbsp/i386/pc386/clock/ckinit.c +++ b/c/src/lib/libbsp/i386/pc386/clock/ckinit.c @@ -176,7 +176,7 @@ int clockIsOn(const rtems_irq_connect_data* unused) return ((i8259s_cache & 0x1) == 0); } -static rtems_irq_connect_data clockIrqData = {PC_386_PERIODIC_TIMER, +static rtems_irq_connect_data clockIrqData = {BSP_PERIODIC_TIMER, clockIsr, clockOn, clockOff, @@ -195,7 +195,7 @@ Clock_initialize(rtems_device_major_number major, void *pargp) { - if (!pc386_install_rtems_irq_handler (&clockIrqData)) { + if (!BSP_install_rtems_irq_handler (&clockIrqData)) { printk("Unable to initialize system clock\n"); rtems_fatal_error_occurred(1); } @@ -229,7 +229,7 @@ Clock_control(rtems_device_major_number major, clockIsr(); else if (args->command == rtems_build_name('N', 'E', 'W', ' ')) { - if (!pc386_install_rtems_irq_handler (&clockIrqData)) { + if (!BSP_install_rtems_irq_handler (&clockIrqData)) { printk("Error installing clock interrupt handler!\n"); rtems_fatal_error_occurred(1); } @@ -241,7 +241,7 @@ Clock_control(rtems_device_major_number major, void Clock_exit() { - pc386_remove_rtems_irq_handler (&clockIrqData); + BSP_remove_rtems_irq_handler (&clockIrqData); } /*-------------------------------------------------------------------------+ diff --git a/c/src/lib/libbsp/i386/pc386/console/console.c b/c/src/lib/libbsp/i386/pc386/console/console.c index 23268bdd06..7a07a6ca3f 100644 --- a/c/src/lib/libbsp/i386/pc386/console/console.c +++ b/c/src/lib/libbsp/i386/pc386/console/console.c @@ -34,29 +34,34 @@ #include <stdio.h> #include <stdlib.h> #include <assert.h> +#undef __assert +void __assert (const char *file, int line, const char *msg); #include <bsp.h> #include <irq.h> #include <rtems/libio.h> #include <termios.h> -#include <pc386uart.h> +#include <uart.h> #include <libcpu/cpuModel.h> /* * Possible value for console input/output : - * PC386_CONSOLE_PORT_CONSOLE - * PC386_UART_COM1 - * PC386_UART_COM2 + * BSP_CONSOLE_PORT_CONSOLE + * BSP_UART_COM1 + * BSP_UART_COM2 */ /* * Possible value for console input/output : - * PC386_CONSOLE_PORT_CONSOLE - * PC386_UART_COM1 - * PC386_UART_COM2 + * BSP_CONSOLE_PORT_CONSOLE + * BSP_UART_COM1 + * BSP_UART_COM2 */ -int PC386ConsolePort = PC386_CONSOLE_PORT_CONSOLE; +int BSPConsolePort = BSP_CONSOLE_PORT_CONSOLE; + +/* int BSPConsolePort = BSP_UART_COM2; */ +int BSPBaseBaud = 115200; extern BSP_polling_getchar_function_type BSP_poll_char; @@ -66,6 +71,7 @@ extern BSP_polling_getchar_function_type BSP_poll_char; extern void _IBMPC_keyboard_isr(void); extern rtems_boolean _IBMPC_scankey(char *); /* defined in 'inch.c' */ extern char BSP_wait_polled_input(void); +extern void _IBMPC_initVideo(void); static int conSetAttr(int minor, const struct termios *); static void isr_on(const rtems_irq_connect_data *); @@ -73,7 +79,7 @@ static void isr_off(const rtems_irq_connect_data *); static int isr_is_on(const rtems_irq_connect_data *); -static rtems_irq_connect_data console_isr_data = {PC_386_KEYBOARD, +static rtems_irq_connect_data console_isr_data = {BSP_KEYBOARD, _IBMPC_keyboard_isr, isr_on, isr_off, @@ -94,28 +100,30 @@ isr_off(const rtems_irq_connect_data *unused) static int isr_is_on(const rtems_irq_connect_data *irq) { - return pc386_irq_enabled_at_i8259s(irq->name); + return BSP_irq_enabled_at_i8259s(irq->name); } void console_reserve_resources(rtems_configuration_table *conf) { - if(PC386ConsolePort != PC386_CONSOLE_PORT_CONSOLE) + if(BSPConsolePort != BSP_CONSOLE_PORT_CONSOLE) { rtems_termios_reserve_resources(conf, 1); } + return; } -void __assert(const char *file, int line, const char *msg) +void __assert (const char *file, int line, const char *msg) { - static char exit_msg[] = "EXECUTIVE SHUTDOWN! Any key to reboot..."; + static char exit_msg[] = "EXECUTIVE SHUTDOWN! Any key to reboot..."; unsigned char ch; - + /* * Note we cannot call exit or printf from here, * assert can fail inside ISR too */ - /* + + /* * Close console */ __rtems_close(2); @@ -129,6 +137,7 @@ void __assert(const char *file, int line, const char *msg) ch = BSP_poll_char(); printk("\n\n"); rtemsReboot(); + } @@ -149,11 +158,11 @@ console_initialize(rtems_device_major_number major, * to be reinitialized. */ - if(PC386ConsolePort == PC386_CONSOLE_PORT_CONSOLE) - { + if(BSPConsolePort == BSP_CONSOLE_PORT_CONSOLE) + { /* Install keyboard interrupt handler */ - status = pc386_install_rtems_irq_handler(&console_isr_data); + status = BSP_install_rtems_irq_handler(&console_isr_data); if (!status) { @@ -181,24 +190,24 @@ console_initialize(rtems_device_major_number major, */ /* 9600-8-N-1 */ - PC386_uart_init(PC386ConsolePort, 9600, 0); + BSP_uart_init(BSPConsolePort, 9600, 0); /* Set interrupt handler */ - if(PC386ConsolePort == PC386_UART_COM1) + if(BSPConsolePort == BSP_UART_COM1) { - console_isr_data.name = PC386_UART_COM1_IRQ; - console_isr_data.hdl = PC386_uart_termios_isr_com1; + console_isr_data.name = BSP_UART_COM1_IRQ; + console_isr_data.hdl = BSP_uart_termios_isr_com1; } else { - assert(PC386ConsolePort == PC386_UART_COM2); - console_isr_data.name = PC386_UART_COM2_IRQ; - console_isr_data.hdl = PC386_uart_termios_isr_com2; + assert(BSPConsolePort == BSP_UART_COM2); + console_isr_data.name = BSP_UART_COM2_IRQ; + console_isr_data.hdl = BSP_uart_termios_isr_com2; } - status = pc386_install_rtems_irq_handler(&console_isr_data); + status = BSP_install_rtems_irq_handler(&console_isr_data); if (!status){ printk("Error installing serial console interrupt handler!\n"); @@ -214,7 +223,7 @@ console_initialize(rtems_device_major_number major, rtems_fatal_error_occurred (status); } - if(PC386ConsolePort == PC386_UART_COM1) + if(BSPConsolePort == BSP_UART_COM1) { printk("Initialized console on port COM1 9600-8-N-1\n\n"); } @@ -229,7 +238,7 @@ console_initialize(rtems_device_major_number major, * using the video console for output while printf use serial line. * This may be convenient to debug the serial line driver itself... */ - printk("Warning : This will be the last message displayed on console\n"); + /* printk("Warning : This will be the last message displayed on console\n");*/ 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; #endif @@ -242,7 +251,7 @@ static int console_open_count = 0; static int console_last_close(int major, int minor, void *arg) { - pc386_remove_rtems_irq_handler (&console_isr_data); + BSP_remove_rtems_irq_handler (&console_isr_data); return 0; } @@ -261,22 +270,22 @@ console_open(rtems_device_major_number major, NULL, /* firstOpen */ console_last_close, /* lastClose */ NULL, /* pollRead */ - PC386_uart_termios_write_com1, /* write */ + BSP_uart_termios_write_com1, /* write */ conSetAttr, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ 1 /* outputUsesInterrupts */ }; - if(PC386ConsolePort == PC386_CONSOLE_PORT_CONSOLE) + if(BSPConsolePort == BSP_CONSOLE_PORT_CONSOLE) { ++console_open_count; return RTEMS_SUCCESSFUL; } - if(PC386ConsolePort == PC386_UART_COM2) + if(BSPConsolePort == BSP_UART_COM2) { - cb.write = PC386_uart_termios_write_com2; + cb.write = BSP_uart_termios_write_com2; } status = rtems_termios_open (major, minor, arg, &cb); @@ -290,11 +299,11 @@ console_open(rtems_device_major_number major, /* * Pass data area info down to driver */ - PC386_uart_termios_set(PC386ConsolePort, + BSP_uart_termios_set(BSPConsolePort, ((rtems_libio_open_close_args_t *)arg)->iop->data1); /* Enable interrupts on channel */ - PC386_uart_intr_ctrl(PC386ConsolePort, PC386_UART_INTR_CTRL_TERMIOS); + BSP_uart_intr_ctrl(BSPConsolePort, BSP_UART_INTR_CTRL_TERMIOS); return RTEMS_SUCCESSFUL; } @@ -309,7 +318,7 @@ console_close(rtems_device_major_number major, { rtems_device_driver res = RTEMS_SUCCESSFUL; - if(PC386ConsolePort != PC386_CONSOLE_PORT_CONSOLE) + if(BSPConsolePort != BSP_CONSOLE_PORT_CONSOLE) { res = rtems_termios_close (arg); } @@ -337,7 +346,7 @@ console_read(rtems_device_major_number major, char *buffer = rw_args->buffer; int count, maximum = rw_args->count; - if(PC386ConsolePort != PC386_CONSOLE_PORT_CONSOLE) + if(BSPConsolePort != BSP_CONSOLE_PORT_CONSOLE) { return rtems_termios_read (arg); } @@ -382,7 +391,7 @@ console_write(rtems_device_major_number major, char *buffer = rw_args->buffer; int count, maximum = rw_args->count; - if(PC386ConsolePort != PC386_CONSOLE_PORT_CONSOLE) + if(BSPConsolePort != BSP_CONSOLE_PORT_CONSOLE) { return rtems_termios_write (arg); } @@ -409,7 +418,7 @@ console_control(rtems_device_major_number major, void * arg ) { - if(PC386ConsolePort != PC386_CONSOLE_PORT_CONSOLE) + if(BSPConsolePort != BSP_CONSOLE_PORT_CONSOLE) { return rtems_termios_ioctl (arg); } @@ -481,7 +490,7 @@ conSetAttr(int minor, const struct termios *t) return 0; } - PC386_uart_set_baud(PC386ConsolePort, baud); + BSP_uart_set_baud(BSPConsolePort, baud); return 0; } diff --git a/c/src/lib/libbsp/i386/pc386/include/bsp.h b/c/src/lib/libbsp/i386/pc386/include/bsp.h index 002bf3b587..f18bdb375d 100644 --- a/c/src/lib/libbsp/i386/pc386/include/bsp.h +++ b/c/src/lib/libbsp/i386/pc386/include/bsp.h @@ -160,10 +160,10 @@ void printk(char *fmt, ...); /* from 'printk.c' */ void rtemsReboot(void); /* from 'exit.c' */ -/* Definitions for PC386ConsolePort */ -#define PC386_CONSOLE_PORT_CONSOLE (-1) -#define PC386_CONSOLE_PORT_COM1 (PC386_UART_COM1) -#define PC386_CONSOLE_PORT_COM2 (PC386_UART_COM2) +/* Definitions for BSPConsolePort */ +#define BSP_CONSOLE_PORT_CONSOLE (-1) +#define BSP_CONSOLE_PORT_COM1 (BSP_UART_COM1) +#define BSP_CONSOLE_PORT_COM2 (BSP_UART_COM2) /* GDB stub stuff */ void i386_stub_glue_init(int uart); diff --git a/c/src/lib/libbsp/i386/pc386/start/Makefile.in b/c/src/lib/libbsp/i386/pc386/start/Makefile.in index e085f50e5b..08007d952d 100644 --- a/c/src/lib/libbsp/i386/pc386/start/Makefile.in +++ b/c/src/lib/libbsp/i386/pc386/start/Makefile.in @@ -33,9 +33,9 @@ include $(RTEMS_ROOT)/make/leaf.cfg # (OPTIONAL) Add local stuff here using += # -ifeq ($(RTEMS_GAS_CODE16),yes) +#ifeq ($(RTEMS_GAS_CODE16),yes) DEFINES += -DNEXT_GAS -endif +#endif CPPFLAGS += CFLAGS += diff --git a/c/src/lib/libbsp/i386/pc386/start/start16.s b/c/src/lib/libbsp/i386/pc386/start/start16.s index d09430e0af..4b12408cd6 100644 --- a/c/src/lib/libbsp/i386/pc386/start/start16.s +++ b/c/src/lib/libbsp/i386/pc386/start/start16.s @@ -33,7 +33,7 @@ .set HDROFF, 0x24 # offset into bin2boot header of start32 addr .set STACKOFF, 0x200-0x10 # offset to load into %esp, from start of image -/* #define NEW_GAS*/ + /* #define NEW_GAS */ /*----------------------------------------------------------------------------+ | CODE section +----------------------------------------------------------------------------*/ diff --git a/c/src/lib/libbsp/i386/pc386/startup/Makefile.in b/c/src/lib/libbsp/i386/pc386/startup/Makefile.in index b59323c6ff..c0da505e2d 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/Makefile.in +++ b/c/src/lib/libbsp/i386/pc386/startup/Makefile.in @@ -4,14 +4,14 @@ @SET_MAKE@ srcdir = @srcdir@ -VPATH = @srcdir@:@srcdir@/../../../shared:@srcdir@/../../shared/irq +VPATH = @srcdir@:@srcdir@/../../../shared:@srcdir@/../../shared/irq:@srcdir@/../../shared/comm:@srcdir@/../../shared/pci RTEMS_ROOT = @top_srcdir@ PROJECT_ROOT = @PROJECT_ROOT@ PGM=${ARCH}/startup.rel # C source names, if any, go here -- minus the .c -C_PIECES=bsplibc bsppost bspstart exit irq irq_init main sbrk +C_PIECES=bsplibc bsppost bspstart exit irq irq_init main sbrk i386-stub i386-stub-glue uart pcibios C_FILES=$(C_PIECES:%=%.c) C_O_FILES=$(C_PIECES:%=${ARCH}/%.o) diff --git a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c index 5800cfad6e..a14ff0521f 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c +++ b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c @@ -146,6 +146,7 @@ void bsp_start( void ) /* * Initialize printk channel */ + _IBMPC_initVideo(); rtemsFreeMemStart = (rtems_unsigned32)&_end + _stack_size; diff --git a/c/src/lib/libbsp/i386/pc386/startup/exit.c b/c/src/lib/libbsp/i386/pc386/startup/exit.c index a9f11b9be4..c37888f003 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/exit.c +++ b/c/src/lib/libbsp/i386/pc386/startup/exit.c @@ -35,7 +35,7 @@ #include <stdio.h> #include <bsp.h> #include <rtems/libio.h> -#include <pc386uart.h> +#include <uart.h> void bsp_cleanup(void) { diff --git a/c/src/lib/libbsp/i386/pc386/startup/linkcmds b/c/src/lib/libbsp/i386/pc386/startup/linkcmds index 5dd7a675a3..f66952b04c 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/linkcmds +++ b/c/src/lib/libbsp/i386/pc386/startup/linkcmds @@ -62,7 +62,6 @@ SECTIONS _rodata_start = . ; *(.rodata) - *(.gnu.linkonce.r*) _erodata = ALIGN( 0x10 ) ; _etext = ALIGN( 0x10 ) ; diff --git a/c/src/lib/libbsp/i386/pc386/timer/timer.c b/c/src/lib/libbsp/i386/pc386/timer/timer.c index 47e4894e00..4c83b309dd 100644 --- a/c/src/lib/libbsp/i386/pc386/timer/timer.c +++ b/c/src/lib/libbsp/i386/pc386/timer/timer.c @@ -167,7 +167,7 @@ timerOff(const rtems_raw_irq_connect_data* used) /* * disable interrrupt at i8259 level */ - pc386_irq_disable_at_i8259s(used->idtIndex - PC386_IRQ_VECTOR_BASE); + BSP_irq_disable_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE); /* reset timer mode to standard (DOS) value */ outport_byte(TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN); outport_byte(TIMER_CNTR0, 0); @@ -185,16 +185,16 @@ timerOn(const rtems_raw_irq_connect_data* used) /* * enable interrrupt at i8259 level */ - pc386_irq_enable_at_i8259s(used->idtIndex - PC386_IRQ_VECTOR_BASE); + BSP_irq_enable_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE); } static int timerIsOn(const rtems_raw_irq_connect_data *used) { - return pc386_irq_enabled_at_i8259s(used->idtIndex - PC386_IRQ_VECTOR_BASE);} + return BSP_irq_enabled_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE);} static rtems_raw_irq_connect_data timer_raw_irq_data = { - PC_386_PERIODIC_TIMER + PC386_IRQ_VECTOR_BASE, + BSP_PERIODIC_TIMER + BSP_IRQ_VECTOR_BASE, timerisr, timerOn, timerOff, diff --git a/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in b/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in index 70515fdb8e..86462939cf 100644 --- a/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in +++ b/c/src/lib/libbsp/i386/pc386/wrapup/Makefile.in @@ -12,7 +12,7 @@ PROJECT_ROOT = @PROJECT_ROOT@ NETWORK_yes_V = network NETWORK = $(NETWORK_$(HAS_NETWORKING)_V) -BSP_PIECES=startup clock console timer pc386dev $(NETWORK) +BSP_PIECES=startup clock console timer $(NETWORK) GENERIC_PIECES= # bummer; have to use $foreach since % pattern subst rules only replace 1x |