Changeset e1c68e0c in mainline


Ignore:
Timestamp:
2006-03-07T10:09:40Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
cd373bb
Parents:
83d2d0e
Message:

ia64 work.

  • Another item had to be allocated on stack to remember new value written to ar.bspstore. Fix heavyweight interruption handler to calculate RSC.loadrs from the new value of ar.bspstore instead from the old one. Uncomment instructions switching ar.bspstore.
  • Configure kernel with 512M of memory.
Location:
arch/ia64
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/include/interrupt.h

    r83d2d0e re1c68e0c  
    5050        __address ar_bsp;
    5151        __address ar_bspstore;
     52        __address ar_bspstore_new;
    5253        __u64 ar_rnat;
    5354        __u64 ar_ifs;
  • arch/ia64/include/mm/memory_init.h

    r83d2d0e re1c68e0c  
    3232#include <config.h>
    3333
    34 #define get_memory_size()       CONFIG_MEMORY_SIZE
     34#define get_memory_size()       (512*1024*1024)         /* 512M */
    3535
    3636#endif
  • arch/ia64/src/ivt.S

    r83d2d0e re1c68e0c  
    3333#include <align.h>
    3434
    35 #define STACK_ITEMS             13
     35#define STACK_ITEMS             14
    3636#define STACK_FRAME_SIZE        ALIGN_UP((STACK_ITEMS*STACK_ITEM_SIZE) + STACK_SCRATCH_AREA_SIZE, STACK_ALIGNMENT)
    3737
     
    142142       
    143143        /* assume kernel backing store */
    144         /* mov ar.bspstore = r28 ;; */
     144        mov ar.bspstore = r28 ;;
    145145       
    146146        mov r29 = ar.bsp
    147147       
    148148        st8 [r31] = r27, -8 ;;  /* save ar.rnat */
     149        st8 [r31] = r28, -8 ;;  /* save new value written to ar.bspstore */
    149150        st8 [r31] = r28, -8 ;;  /* save ar.bspstore */
    150151        st8 [r31] = r29, -8     /* save ar.bsp */
     
    162163        add r31 = STACK_SCRATCH_AREA_SIZE, r12 ;;
    163164
    164         mov r28 = ar.bspstore           /* calculate loadrs (step 2) */
    165         ld8 r29 = [r31], +8 ;;          /* load ar.bsp */
    166         sub r27 = r29 , r28 ;;
     165        ld8 r30 = [r31], +8 ;;          /* load ar.bsp */
     166        ld8 r29 = [r31], +8 ;;          /* load ar.bspstore */
     167        ld8 r28 = [r31], +8 ;;          /* load ar.bspstore_new */
     168        sub r27 = r30 , r28 ;;          /* calculate loadrs (step 2) */
    167169        shl r27 = r27, 16
    168170
     
    174176        loadrs                          /* (step 3) */
    175177
    176         ld8 r28 = [r31], +8 ;;          /* load ar.bspstore */
    177178        ld8 r27 = [r31], +8 ;;          /* load ar.rnat */
    178179        ld8 r26 = [r31], +8 ;;          /* load cr.ifs */
     
    180181        ld8 r24 = [r31], +8 ;;          /* load ar.rsc */
    181182
    182         /* mov ar.bspstore = r28 ;; */  /* (step 4) */
    183         /* mov ar.rnat = r27 */         /* (step 5) */
     183        mov ar.bspstore = r29 ;;        /* (step 4) */
     184        mov ar.rnat = r27               /* (step 5) */
    184185
    185186        mov ar.pfs = r25                /* (step 6) */
Note: See TracChangeset for help on using the changeset viewer.