Ignore:
Timestamp:
Sep 21, 1998, 12:24:51 AM (21 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
3f929757
Parents:
04bc5d9
Message:

Update from Eric Valette <valette@…>:

Here are patches that bring 980911 back to what I think is a correct
version of raw IDT management as well as a correct initialisation
of video console and rtems managed interrupts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/i386/shared/irq/irq_init.c

    r04bc5d9 rc610a1f3  
    120120    unsigned int                level;
    121121
    122    
    123122    i386_get_info_from_IDTR (&idt_entry_tbl, &limit);
    124    
     123    /* Convert limit into number of entries */
     124    limit = (limit + 1) / sizeof(interrupt_gate_descriptor);   
     125
    125126    _CPU_ISR_Disable(level);
    126127
     
    128129     * Init the complete IDT vector table with defaultRawIrq value
    129130     */
    130     for (i = 0; i < IDT_SIZE; i++) {
    131       idtHdl[i] = defaultRawIrq;
     131    for (i = 0; i < limit; i++) {
     132      idtHdl[i]          = defaultRawIrq;
     133      idtHdl[i].idtIndex = i;
    132134    }
    133135    raw_initial_config.idtSize = IDT_SIZE;
     
    139141       * put something here that will show the failure...
    140142       */
    141       BSP_emergency_output_init();
    142143      printk("Unable to initialize IDT!!! System locked\n");
    143144      while (1);
     
    160161     */
    161162    for (i = 0; i < PC_386_IRQ_LINES_NUMBER; i++) {
    162       rtemsIrq[i] = defaultIrq;
     163      rtemsIrq[i]      = defaultIrq;
     164      rtemsIrq[i].name = i;
    163165    }
    164166    /*
     
    170172    initial_config.irqBase      = PC386_ASM_IRQ_VECTOR_BASE;
    171173    initial_config.irqPrioTbl   = irqPrioTable;
     174
    172175    if (!pc386_rtems_irq_mngt_set(&initial_config)) {
    173176      /*
    174177       * put something here that will show the failure...
    175178       */
    176       BSP_emergency_output_init();
    177179      printk("Unable to initialize RTEMS interrupt Management!!! System locked\n");
    178180      while (1);
     
    189191      unsigned tmp;
    190192
    191       BSP_emergency_output_init();
    192      
    193193      printk("idt_entry_tbl =  %x Interrupt_descriptor_table addr = %x\n",
    194194             idt_entry_tbl, &Interrupt_descriptor_table);
Note: See TracChangeset for help on using the changeset viewer.