Ignore:
Timestamp:
Jul 27, 2017, 12:23:29 AM (4 years ago)
Author:
alain
Message:

1) Introduce independant command fields for the various devices in the thread descriptor.
2) Introduce a new dev_pic_enable_ipi() function in the generic PIC device
3) Fix two bugs identified by Maxime in the scheduler initialisation, and in the sched_select().
4) fix several bugs in the TSAR hal_kentry.S.
5) Introduce a third kgiet segment (besides kdata and kcode) in the TSAR bootloader.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hal/tsar_mips32/core/hal_irqmask.c

    r62 r279  
    2828inline void hal_disable_irq( uint32_t * old )
    2929{
    30         register unsigned int sr;
     30        register uint32_t sr;
    3131       
    3232        __asm__ volatile
    3333                (".set noat                          \n"
    34                  ".set noreorder                     \n"
    35                  "mfc0   $1,     $12                 \n"
    36                  "nop                                \n"
    37                  ".set reorder                       \n"
     34         "mfc0   $1,     $12                 \n"
    3835                 "or     %0,     $0,     $1          \n"
    3936                 "srl    $1,     $1,     1           \n"
    4037                 "sll    $1,     $1,     1           \n"
    4138                 "mtc0   $1,     $12                 \n"
    42                 ".set at                            \n"
    43                  : "=&r" (sr));
     39        ".set at                            \n"
     40                 : "=&r" (sr) );
    4441
    4542        if( old ) *old = sr;
     
    4946inline void hal_enable_irq( uint32_t * old )
    5047{
    51         register unsigned int sr;
     48        register uint32_t sr;
    5249 
    5350        __asm__ volatile
    5451                (".set noat                          \n"
    55                  ".set noreorder                     \n"
    5652                 "mfc0   $1,     $12                 \n"
    57                  "nop                                \n"
    5853                 "or     %0,     $0,     $1          \n"
    59                  "ori    $1,     $1,     0x1         \n"
     54                 "ori    $1,     $1,     0xFF01      \n"
    6055                 "mtc0   $1,     $12                 \n"
    61                  "nop                                \n"
    62                  ".set reorder                       \n"
    63                  ".set at                            \n"
    64                  : "=&r" (sr));
     56         ".set at                            \n"
     57                 : "=&r" (sr) );
    6558 
    6659        if( old ) *old = sr;
     
    7164{
    7265        __asm__ volatile
    73                 (".set noat                          \n"
    74                  ".set noreorder                     \n"
    75                  "mfc0    $1,    $12                 \n"
    76                  "ori     $2,    $0,      0xFF       \n"
    77                  "and     $2,    $2,      %0         \n"
    78                  "or      $1,    $1,      $2         \n"
    79                  "mtc0    $1,    $12                 \n"
    80                  ".set reorder                       \n"
    81                  ".set at                            \n"
    82                  : : "r" (old) : "$2");
     66                ( "mtc0    %0,    $12" : : "r" (old) );
    8367}
    8468
     69
Note: See TracChangeset for help on using the changeset viewer.