40#ifndef LIBBSP_I386_PC386_BSP_H
41#define LIBBSP_I386_PC386_BSP_H
55#include <rtems/score/cpu.h>
64#define BSP_HAS_FRAME_BUFFER 1
69struct rtems_bsdnet_ifconfig;
77BSP_runtime_console_select(
int *pPrintkPort,
int *pConsolePort);
79extern int rtems_ne_driver_attach(
struct rtems_bsdnet_ifconfig *,
int);
80#define BSP_NE2000_NETWORK_DRIVER_NAME "ne1"
81#define BSP_NE2000_NETWORK_DRIVER_ATTACH rtems_ne_driver_attach
83extern int rtems_wd_driver_attach(
struct rtems_bsdnet_ifconfig *,
int);
84#define BSP_WD8003_NETWORK_DRIVER_NAME "wd1"
85#define BSP_WD8003_NETWORK_DRIVER_ATTACH rtems_wd_driver_attach
87extern int rtems_dec21140_driver_attach(
struct rtems_bsdnet_ifconfig *,
int);
88#define BSP_DEC21140_NETWORK_DRIVER_NAME "dc1"
89#define BSP_DEC21140_NETWORK_DRIVER_ATTACH rtems_dec21140_driver_attach
91extern int rtems_3c509_driver_attach(
struct rtems_bsdnet_ifconfig *config);
92#define BSP_3C509_NETWORK_DRIVER_NAME "3c1"
93#define BSP_3C509_NETWORK_DRIVER_ATTACH rtems_3c509_driver_attach
95#ifndef RTEMS_BSP_NETWORK_DRIVER_NAME
96#define RTEMS_BSP_NETWORK_DRIVER_NAME BSP_DEC21140_NETWORK_DRIVER_NAME
99#ifndef RTEMS_BSP_NETWORK_DRIVER_ATTACH
100#define RTEMS_BSP_NETWORK_DRIVER_ATTACH BSP_DEC21140_NETWORK_DRIVER_ATTACH
110#define IO_TIMER1 0x40
112#define TIMER_CNTR0 (IO_TIMER1 + 0)
113#define TIMER_CNTR1 (IO_TIMER1 + 1)
114#define TIMER_CNTR2 (IO_TIMER1 + 2)
115#define TIMER_MODE (IO_TIMER1 + 3)
116#define TIMER_SEL0 0x00
117#define TIMER_SEL1 0x40
118#define TIMER_SEL2 0x80
119#define TIMER_INTTC 0x00
120#define TIMER_ONESHOT 0x02
121#define TIMER_RATEGEN 0x04
122#define TIMER_SQWAVE 0x06
123#define TIMER_SWSTROBE 0x08
124#define TIMER_HWSTROBE 0x0a
125#define TIMER_LATCH 0x00
126#define TIMER_LSB 0x10
127#define TIMER_MSB 0x20
128#define TIMER_16BIT 0x30
129#define TIMER_BCD 0x01
130#define TIMER_RD_BACK 0xc0
132#define RB_NOT_COUNT 0x40
133#define RB_NOT_STATUS 0x20
134#define RB_COUNT_0 0x02
135#define RB_COUNT_1 0x04
136#define RB_COUNT_2 0x08
137#define RB_OUTPUT 0x80
139#define TIMER_TICK 1193182
141#if defined( RTEMS_SMP )
142 extern ISR_lock_Control rtems_i386_i8254_access_lock;
151#define BSP_CONSOLE_VGA 0
152#define BSP_CONSOLE_COM1 1
153#define BSP_CONSOLE_COM2 2
158#define US_TO_TICK(us) (((us)*105+44)/88)
159#define TICK_TO_US(tk) (((tk)*88+52)/105)
165extern segment_descriptors _Global_descriptor_table [GDT_SIZE];
170void _IBMPC_initVideo(
void);
171void _IBMPC_outch (
char);
172char _IBMPC_inch (
void);
173char _IBMPC_inch_sleep (
void);
174int BSP_wait_polled_input(
void);
175int rtems_kbpoll(
void );
177void add_to_queue(
unsigned short b );
179void Wait_X_ms(
unsigned int timeToWait);
180void Calibrate_loop_1ms(
void);
182void rtems_irq_mngt_init(
void);
184void Clock_driver_install_handler(
void);
185void Clock_driver_support_initialize_hardware(
void);
188#define BSP_IDLE_TASK_BODY bsp_idle_thread
190void kbd_reset_setup(
char *str,
int *ints);
191size_t read_aux(
char * buffer,
size_t count);
206#define BSP_CONSOLE_PORT_CONSOLE (-1)
207#define BSP_CONSOLE_PORT_COM1 (BSP_UART_COM1)
208#define BSP_CONSOLE_PORT_COM2 (BSP_UART_COM2)
213const char* bsp_cmdline(
void);
214const char* bsp_cmdline_arg(
const char* arg);
220void bsp_ide_cmdline_init(
void);
225#define RTEMS_BSP_HAS_IDE_DRIVER
229void init_remote_gdb(
void );
230void i386_stub_glue_init(
int uart);
231void i386_stub_glue_init_breakin(
void);
232int i386_stub_glue_uart(
void);
233void rtems_pc386_breakpoint(
void);
239uint32_t BSP_irq_count_dump(FILE *f);
245void raw_idt_notify(
void);
246void C_dispatch_isr(
int vector);
250 int imps_probe(
void);
251 void ipi_install_irq(
void);
252 int send_ipi(
unsigned int dst,
unsigned int v);
This header file provides the kernel character input/output support API.
This header file provides the default definition of BSP_INITIAL_EXTENSION.
void * bsp_idle_thread(uintptr_t ignored)
Optimized idle task.
Definition: bspidle.c:39
bool bsp_get_serial_mouse_device(const char **name, const char **type)
Obtain serial mouse configuration information.
Definition: serial_mouse_config.c:48
This header file defines the RTEMS Classic API.
Sizes of Global and Interrupt descriptor tables.