RTEMS  5.0.0
Modules | Files | Macros | Typedefs | Functions | Variables

i386 Board Support Package. More...

Modules

 3C509 Support
 3C509 support.
 
 Comm
 Comm.
 
 Interrupt handlers
 Data structure and the functions to write interrupt handlers.
 
 PCI
 PCI.
 
 SMP
 Header file implementing Intel MultiProcessor Specification (MPS) version 1.1 and 1.4 SMP hardware control for Intel Architecture CPUs, with hooks for running correctly on a standard PC without the hardware.
 

Files

file  realmode_int.h
 Definitioins supporting real mode interrupt calls.
 
file  fb_vesa_rm.c
 FB driver for graphic hardware compatible with VESA Bios Extension Real mode interface utilized Tested on real HW.
 
file  i386kbd.h
 I386 keyboard definitions.
 
file  ps2_mouse.h
 Keyboard and mouse definitions.
 
file  exar17d15x.h
 Exar Multiport PCI UART interface.
 
file  fb_default_mode.h
 Variable for the definition of the default graphical mode to be initialized.
 
file  fb_vesa.h
 Headers specific for framebuffer drivers utilizing VESA VBE.
 
file  rtd316.h
 RTD316 driver interface defintions.
 
file  tblsizes.h
 Sizes of Global and Interrupt descriptor tables.
 
file  vbe3.h
 VESA Bios Extension definitions.
 
file  crt.h
 CRT controller definitions.
 
file  edid.h
 VESA EDID definitions.
 
file  kd.h
 KD definitions.
 
file  keyboard.h
 Keyboard definitions.
 
file  ps2_drv.h
 Paux driver routines.
 
file  vgacons.h
 VGA definitions.
 
file  tm27.h
 Implementation of interrupt mechanisms for Time Test 27.
 
file  realmode_int.c
 Real mode interrupt call implementation.
 
file  wd80x3.h
 DP8390 Ethernet controller definitions.
 

Macros

#define BSP_HAS_FRAME_BUFFER   1
 
#define BSP_NE2000_NETWORK_DRIVER_NAME   "ne1"
 
#define BSP_NE2000_NETWORK_DRIVER_ATTACH   rtems_ne_driver_attach
 
#define BSP_WD8003_NETWORK_DRIVER_NAME   "wd1"
 
#define BSP_WD8003_NETWORK_DRIVER_ATTACH   rtems_wd_driver_attach
 
#define BSP_DEC21140_NETWORK_DRIVER_NAME   "dc1"
 
#define BSP_DEC21140_NETWORK_DRIVER_ATTACH   rtems_dec21140_driver_attach
 
#define BSP_3C509_NETWORK_DRIVER_NAME   "3c1"
 
#define BSP_3C509_NETWORK_DRIVER_ATTACH   rtems_3c509_driver_attach
 
#define RTEMS_BSP_NETWORK_DRIVER_NAME   BSP_DEC21140_NETWORK_DRIVER_NAME
 
#define RTEMS_BSP_NETWORK_DRIVER_ATTACH   BSP_DEC21140_NETWORK_DRIVER_ATTACH
 
#define IO_TIMER1   0x40
 
#define TIMER_CNTR0   (IO_TIMER1 + 0) /* timer 0 counter port */
 
#define TIMER_CNTR1   (IO_TIMER1 + 1) /* timer 1 counter port */
 
#define TIMER_CNTR2   (IO_TIMER1 + 2) /* timer 2 counter port */
 
#define TIMER_MODE   (IO_TIMER1 + 3) /* timer mode port */
 
#define TIMER_SEL0   0x00 /* select counter 0 */
 
#define TIMER_SEL1   0x40 /* select counter 1 */
 
#define TIMER_SEL2   0x80 /* select counter 2 */
 
#define TIMER_INTTC   0x00 /* mode 0, intr on terminal cnt */
 
#define TIMER_ONESHOT   0x02 /* mode 1, one shot */
 
#define TIMER_RATEGEN   0x04 /* mode 2, rate generator */
 
#define TIMER_SQWAVE   0x06 /* mode 3, square wave */
 
#define TIMER_SWSTROBE   0x08 /* mode 4, s/w triggered strobe */
 
#define TIMER_HWSTROBE   0x0a /* mode 5, h/w triggered strobe */
 
#define TIMER_LATCH   0x00 /* latch counter for reading */
 
#define TIMER_LSB   0x10 /* r/w counter LSB */
 
#define TIMER_MSB   0x20 /* r/w counter MSB */
 
#define TIMER_16BIT   0x30 /* r/w counter 16 bits, LSB first */
 
#define TIMER_BCD   0x01 /* count in BCD */
 
#define TIMER_RD_BACK   0xc0 /* Read Back Command */
 
#define RB_NOT_COUNT   0x40 /* Don't select counter latch */
 
#define RB_NOT_STATUS   0x20 /* Don't select status latch */
 
#define RB_COUNT_0   0x02 /* Counter 0 latch */
 
#define RB_COUNT_1   0x04 /* Counter 1 latch */
 
#define RB_COUNT_2   0x08 /* Counter 2 latch */
 
#define RB_OUTPUT   0x80 /* Output of the counter is 1 */
 
#define TIMER_TICK   1193182 /* The internal tick rate in ticks per second */
 
#define BSP_CONSOLE_VGA   0
 
#define BSP_CONSOLE_COM1   1
 
#define BSP_CONSOLE_COM2   2
 
#define US_TO_TICK(us)   (((us)*105+44)/88)
 
#define TICK_TO_US(tk)   (((tk)*88+52)/105)
 
#define BSP_IDLE_TASK_BODY   bsp_idle_thread
 
#define BSP_CONSOLE_PORT_CONSOLE   (-1)
 
#define BSP_CONSOLE_PORT_COM1   (BSP_UART_COM1)
 
#define BSP_CONSOLE_PORT_COM2   (BSP_UART_COM2)
 
#define BSP_MAXIMUM_DEVICES   6
 

Typedefs

typedef __FILE FILE
 

Functions

void BSP_runtime_console_select (int *pPrintkPort, int *pConsolePort)
 
int rtems_ne_driver_attach (struct rtems_bsdnet_ifconfig *, int)
 
int rtems_wd_driver_attach (struct rtems_bsdnet_ifconfig *, int)
 
int rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *, int)
 
int rtems_3c509_driver_attach (struct rtems_bsdnet_ifconfig *config)
 
void _IBMPC_initVideo (void)
 
void _IBMPC_outch (char)
 
char _IBMPC_inch (void)
 
char _IBMPC_inch_sleep (void)
 
int BSP_wait_polled_input (void)
 
int rtems_kbpoll (void)
 
int getch (void)
 
void add_to_queue (unsigned short b)
 
void Wait_X_ms (unsigned int timeToWait)
 
void Calibrate_loop_1ms (void)
 
void rtems_irq_mngt_init (void)
 
void Clock_driver_install_handler (void)
 
void Clock_driver_support_initialize_hardware (void)
 
void * bsp_idle_thread (uintptr_t ignored)
 Optimized idle task. More...
 
void kbd_reset_setup (char *str, int *ints)
 
size_t read_aux (char *buffer, size_t count)
 
bool bsp_get_serial_mouse_device (const char **name, const char **type)
 
void register_leds (int console, unsigned int led, unsigned int *addr, unsigned int mask)
 
const char * bsp_cmdline (void)
 
const char * bsp_cmdline_arg (const char *arg)
 
void init_remote_gdb (void)
 
void i386_stub_glue_init (int uart)
 
void i386_stub_glue_init_breakin (void)
 
int i386_stub_glue_uart (void)
 
void breakpoint (void)
 
uint32_t BSP_irq_count_dump (FILE *f)
 
void raw_idt_notify (void)
 
void C_dispatch_isr (int vector)
 

Variables

interrupt_gate_descriptor Interrupt_descriptor_table [IDT_SIZE]
 
segment_descriptors _Global_descriptor_table [GDT_SIZE]
 

Detailed Description

i386 Board Support Package.

Function Documentation

◆ bsp_idle_thread()

void* bsp_idle_thread ( uintptr_t  ignored)

Optimized idle task.

This BSP provides its own IDLE thread to override the RTEMS one.

This idle task sets the power mode to idle. This causes the processor clock to be stopped, while on-chip peripherals remain active. Any enabled interrupt from a peripheral or an external interrupt source will cause the processor to resume execution.

To enable the idle task use the following in the system configuration:

#include <bsp.h>
#define CONFIGURE_INIT
#define CONFIGURE_IDLE_TASK_BODY bsp_idle_thread
#include <confdefs.h>

This BSP provides its own IDLE thread to override the RTEMS one.

Optimized idle task.

The MSR[POW] bit is set to put the CPU into the low power mode defined in HID0. HID0 is set during starup in start.S.

This BSP provides its own IDLE thread to override the RTEMS one.

This idle task sets the power mode to idle. This causes the processor clock to be stopped, while on-chip peripherals remain active. Any enabled interrupt from a peripheral or an external interrupt source will cause the processor to resume execution.

To enable the idle task use the following in the system configuration:

#include <bsp.h>
#define CONFIGURE_INIT
#define CONFIGURE_IDLE_TASK_BODY bsp_idle_thread
#include <confdefs.h>

Optimized idle task.

The MSR[POW] bit is set to put the CPU into the low power mode defined in HID0. HID0 is set during starup in start.S.