Changeset c610a1f3 in rtems


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.

Location:
c/src/lib/libbsp/i386
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/i386/pc386/start/start16.s

    r04bc5d9 rc610a1f3  
    9393        ljmp    $PROT_CODE_SEG, $1f     # flush prefetch queue, and reload %cs
    9494#endif 
     95.code32
    95961:
    96 
    97 .code32
    98 
    9997        /*---------------------------------------------------------------------+
    10098        | load the other segment registers
  • c/src/lib/libbsp/i386/pc386/startup/bspstart.c

    r04bc5d9 rc610a1f3  
    11/*-------------------------------------------------------------------------+
    2 | bspstart.c v1.1 - PC386 BSP - 1997/08/07
    3 +--------------------------------------------------------------------------+
    42| This file contains the PC386 BSP startup package. It includes application,
    53| board, and monitor specific initialization and configuration. The generic CPU
     
    3937#include <rtems/libio.h>
    4038#include <libcpu/cpuModel.h>
     39#include <pc386uart.h>
    4140
    4241/*-------------------------------------------------------------------------+
     
    4443+--------------------------------------------------------------------------*/
    4544extern rtems_unsigned32 _end;         /* End of BSS. Defined in 'linkcmds'. */
    46 
    4745/*
    4846 * Size of heap if it is 0 it will be dynamically defined by memory size,
     
    7674void bsp_postdriver_hook(void);
    7775extern void rtems_irq_mngt_init();
     76extern void _IBMPC_initVideo(void);
    7877
    7978/*-------------------------------------------------------------------------+
     
    152151   */
    153152  Calibrate_loop_1ms();
     153  /*
     154   * Initialize printk channel
     155   */
     156  _IBMPC_initVideo();
    154157
    155158  rtemsFreeMemStart = (rtems_unsigned32)&_end + _stack_size;
  • c/src/lib/libbsp/i386/shared/io/bspIo.h

    r04bc5d9 rc610a1f3  
    2727extern  BSP_output_char_function_type           BSP_output_char;
    2828extern  BSP_polling_getchar_function_type       BSP_poll_char;
    29 extern  void BSP_emergency_output_init(void);
    3029/*
    3130 * All the function declared as extern after this comment
  • 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.