47#ifndef LIBBSP_I386_PC386_BSP_H
48#define LIBBSP_I386_PC386_BSP_H
62#include <rtems/score/cpu.h>
71#define BSP_HAS_FRAME_BUFFER 1
76struct rtems_bsdnet_ifconfig;
84BSP_runtime_console_select(
int *pPrintkPort,
int *pConsolePort);
86extern int rtems_ne_driver_attach(
struct rtems_bsdnet_ifconfig *,
int);
87#define BSP_NE2000_NETWORK_DRIVER_NAME "ne1"
88#define BSP_NE2000_NETWORK_DRIVER_ATTACH rtems_ne_driver_attach
90extern int rtems_wd_driver_attach(
struct rtems_bsdnet_ifconfig *,
int);
91#define BSP_WD8003_NETWORK_DRIVER_NAME "wd1"
92#define BSP_WD8003_NETWORK_DRIVER_ATTACH rtems_wd_driver_attach
94extern int rtems_dec21140_driver_attach(
struct rtems_bsdnet_ifconfig *,
int);
95#define BSP_DEC21140_NETWORK_DRIVER_NAME "dc1"
96#define BSP_DEC21140_NETWORK_DRIVER_ATTACH rtems_dec21140_driver_attach
98extern int rtems_3c509_driver_attach(
struct rtems_bsdnet_ifconfig *
config);
99#define BSP_3C509_NETWORK_DRIVER_NAME "3c1"
100#define BSP_3C509_NETWORK_DRIVER_ATTACH rtems_3c509_driver_attach
102#ifndef RTEMS_BSP_NETWORK_DRIVER_NAME
103#define RTEMS_BSP_NETWORK_DRIVER_NAME BSP_DEC21140_NETWORK_DRIVER_NAME
106#ifndef RTEMS_BSP_NETWORK_DRIVER_ATTACH
107#define RTEMS_BSP_NETWORK_DRIVER_ATTACH BSP_DEC21140_NETWORK_DRIVER_ATTACH
117#define IO_TIMER1 0x40
119#define TIMER_CNTR0 (IO_TIMER1 + 0)
120#define TIMER_CNTR1 (IO_TIMER1 + 1)
121#define TIMER_CNTR2 (IO_TIMER1 + 2)
122#define TIMER_MODE (IO_TIMER1 + 3)
123#define TIMER_SEL0 0x00
124#define TIMER_SEL1 0x40
125#define TIMER_SEL2 0x80
126#define TIMER_INTTC 0x00
127#define TIMER_ONESHOT 0x02
128#define TIMER_RATEGEN 0x04
129#define TIMER_SQWAVE 0x06
130#define TIMER_SWSTROBE 0x08
131#define TIMER_HWSTROBE 0x0a
132#define TIMER_LATCH 0x00
133#define TIMER_LSB 0x10
134#define TIMER_MSB 0x20
135#define TIMER_16BIT 0x30
136#define TIMER_BCD 0x01
137#define TIMER_RD_BACK 0xc0
139#define RB_NOT_COUNT 0x40
140#define RB_NOT_STATUS 0x20
141#define RB_COUNT_0 0x02
142#define RB_COUNT_1 0x04
143#define RB_COUNT_2 0x08
144#define RB_OUTPUT 0x80
146#define TIMER_TICK 1193182
148#if defined( RTEMS_SMP )
158#define BSP_CONSOLE_VGA 0
159#define BSP_CONSOLE_COM1 1
160#define BSP_CONSOLE_COM2 2
165#define US_TO_TICK(us) (((us)*105+44)/88)
166#define TICK_TO_US(tk) (((tk)*88+52)/105)
172extern segment_descriptors _Global_descriptor_table [GDT_SIZE];
177void _IBMPC_initVideo(
void);
178void _IBMPC_outch (
char);
179char _IBMPC_inch (
void);
180char _IBMPC_inch_sleep (
void);
181int BSP_wait_polled_input(
void);
182int rtems_kbpoll(
void );
184void add_to_queue(
unsigned short b );
186void Wait_X_ms(
unsigned int timeToWait);
187void Calibrate_loop_1ms(
void);
189void rtems_irq_mngt_init(
void);
191void Clock_driver_install_handler(
void);
192void Clock_driver_support_initialize_hardware(
void);
195#define BSP_IDLE_TASK_BODY bsp_idle_thread
197void kbd_reset_setup(
char *str,
int *ints);
198size_t read_aux(
char * buffer,
size_t count);
213#define BSP_CONSOLE_PORT_CONSOLE (-1)
214#define BSP_CONSOLE_PORT_COM1 (BSP_UART_COM1)
215#define BSP_CONSOLE_PORT_COM2 (BSP_UART_COM2)
220const char* bsp_cmdline(
void);
221const char* bsp_cmdline_arg(
const char* arg);
227void bsp_ide_cmdline_init(
void);
232#define RTEMS_BSP_HAS_IDE_DRIVER
236void init_remote_gdb(
void );
237void i386_stub_glue_init(
int uart);
238void i386_stub_glue_init_breakin(
void);
239int i386_stub_glue_uart(
void);
240void breakpoint(
void);
246uint32_t BSP_irq_count_dump(FILE *f);
252void raw_idt_notify(
void);
253void C_dispatch_isr(
int vector);
257 int imps_probe(
void);
258 void ipi_install_irq(
void);
259 int send_ipi(
unsigned int dst,
unsigned int v);
Interface to Kernel Print Methods.
DEFAULT_INITIAL_EXTENSION Support.
void * bsp_idle_thread(uintptr_t ignored)
Optimized idle task.
Definition: bspidle.c:26
bool bsp_get_serial_mouse_device(const char **name, const char **type)
Obtain serial mouse configuration information.
Definition: serial_mouse_config.c:29
ISR lock control.
Definition: isrlock.h:56
Definition: deflate.c:115
unsigned v
Definition: tte.h:0
Sizes of Global and Interrupt descriptor tables.