RTEMS 6.1-rc5
Loading...
Searching...
No Matches
Files
i8259 Chip Support

i8259 Chip Support More...

Files

file  i8259.h
 Data structure and functions used to control i8259 chip.
 

Type definition for RTEMS managed interrupts

typedef unsigned short rtems_i8259_masks
 
volatile rtems_i8259_masks i8259s_cache
 

Function Prototypes

void BSP_i8259s_init (void)
 
int BSP_irq_disable_at_i8259s (const rtems_irq_number irqLine)
 function to disable a particular irq at 8259 level.
 
int BSP_irq_enable_at_i8259s (const rtems_irq_number irqLine)
 function to enable a particular irq at 8259 level.
 
int BSP_irq_ack_at_i8259s (const rtems_irq_number irqLine)
 function to acknowledge a particular irq at 8259 level.
 
int BSP_irq_enabled_at_i8259s (const rtems_irq_number irqLine)
 function to check if a particular irq is enabled at 8259 level.
 
int BSP_i8259s_int_process (void)
 
void BSP_rtems_irq_mng_init (unsigned cpuId)
 

8259 edge/level control definitions at VIA

#define ISA8259_M_ELCR   0x4d0
 
#define ISA8259_S_ELCR   0x4d1
 
#define ELCRS_INT15_LVL   0x80
 
#define ELCRS_INT14_LVL   0x40
 
#define ELCRS_INT13_LVL   0x20
 
#define ELCRS_INT12_LVL   0x10
 
#define ELCRS_INT11_LVL   0x08
 
#define ELCRS_INT10_LVL   0x04
 
#define ELCRS_INT9_LVL   0x02
 
#define ELCRS_INT8_LVL   0x01
 
#define ELCRM_INT7_LVL   0x80
 
#define ELCRM_INT6_LVL   0x40
 
#define ELCRM_INT5_LVL   0x20
 
#define ELCRM_INT4_LVL   0x10
 
#define ELCRM_INT3_LVL   0x8
 
#define ELCRM_INT2_LVL   0x4
 
#define ELCRM_INT1_LVL   0x2
 
#define ELCRM_INT0_LVL   0x1
 

PIC's command and mask registers

#define PIC_MASTER_COMMAND_IO_PORT   0x20
 Master PIC command register *‍/.
 
#define PIC_SLAVE_COMMAND_IO_PORT   0xa0
 Slave PIC command register *‍/.
 
#define PIC_MASTER_IMR_IO_PORT   0x21
 Master PIC Interrupt Mask Register *‍/.
 
#define PIC_SLAVE_IMR_IO_PORT   0xa1
 Slave PIC Interrupt Mask Register *‍/.
 

Command for specific EOI (End Of Interrupt): Interrupt acknowledge

#define PIC_EOSI   0x60
 End of Specific Interrupt (EOSI) *‍/.
 
#define SLAVE_PIC_EOSI   0x62
 End of Specific Interrupt (EOSI) for cascade *‍/.
 
#define PIC_EOI   0x20
 Generic End of Interrupt (EOI) *‍/.
 

Detailed Description

i8259 Chip Support

Function Documentation

◆ BSP_irq_ack_at_i8259s()

int BSP_irq_ack_at_i8259s ( const rtems_irq_number  irqLine)

function to acknowledge a particular irq at 8259 level.

After calling this function, if a device asserts an enabled interrupt line it will be propagated further to the processor. Mainly useful for people writing raw handlers as this is automagically done for RTEMS managed handlers.

◆ BSP_irq_disable_at_i8259s()

int BSP_irq_disable_at_i8259s ( const rtems_irq_number  irqLine)

function to disable a particular irq at 8259 level.

After calling this function, even if the device asserts the interrupt line it will not be propagated further to the processor.

Return values
1the interrupt was enabled originally
0the interrupt was disabled originally
<0error

◆ BSP_irq_enable_at_i8259s()

int BSP_irq_enable_at_i8259s ( const rtems_irq_number  irqLine)

function to enable a particular irq at 8259 level.

After calling this function, if the device asserts the interrupt line it will be propagated further to the processor.