Ignore:
Timestamp:
Jul 18, 2012, 9:17:22 AM (12 years ago)
Author:
karaoui
Message:

Testing the placement of the kernel segments without the identity mapping.
debugging memo.
debugging the vm_handler to disable the interrupts while passing in physical addressing.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/sys/vm_handler.c

    r170 r171  
    118118
    119119        // gets ppn_value and flags_value, after temporary DTLB desactivation
    120         asm volatile ( "move    $27, %2     \n"     /* $27 <= pte2      */
    121                        "li      $26, 0xB    \n"     /* DTLB unactivated */
    122                        "mtc2    $26, $1     \n"
    123                        "lw      %0,  0($27) \n"     /* read flags       */
    124                        "lw      %1,  4($27) \n"     /* read ppn         */
    125                        "li      $26, 0xF    \n"
    126                        "mtc2    $26, $1     \n"     /* DTLB activated   */
     120        asm volatile (
     121                       "li      $27,    0xFFFFFFFE  \n"     /* Mask for IE bits     */
     122                       "mfc0    $8,     $12         \n"     /* $8 <= SR             */
     123                       "and     $26,    $26,    $27 \n"     /* disable Interrupts   */
     124                       "move    $27,    %2          \n"     /* $27 <= pte2          */
     125                       "li      $26,    0xB         \n"     /* DTLB unactivated     */
     126                       "mtc2    $26,    $1          \n"
     127                       "lw      %0,     0($27)      \n"     /* read flags           */
     128                       "lw      %1,     4($27)      \n"     /* read ppn             */
     129                       "li      $26,    0xF         \n"
     130                       "mtc2    $26,    $1          \n"     /* DTLB activated       */
     131                       "or     $26,     $8,    $0   \n"     /* SR previous state    */
    127132                        :"=r"(flags_value), "=r"(ppn_value)
    128133                        :"r"(pte2)
    129                         :"$26" );
     134                        :"$26","$27","$8" );
    130135
    131136        // check PTE2 mapping
Note: See TracChangeset for help on using the changeset viewer.