Changeset 170


Ignore:
Timestamp:
Jul 17, 2012, 4:37:44 PM (12 years ago)
Author:
alain
Message:

Bug fix dans _v2p_translate() (in sys/vm_handler.c)

Location:
soft/giet_vm
Files:
3 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_config.h

    r169 r170  
    2727#define NB_TIMERS                   4       /* number of timers per cluster */
    2828#define NB_DMAS                     1       /* total number of DMA channels */
    29 #define NB_TTYS                     2       /* total number of TTY terminals */
     29#define NB_TTYS                     8       /* total number of TTY terminals */
    3030#define NB_IOC                      1       /* total number of IOC channels */
    3131
  • soft/giet_vm/map.xml

    r169 r170  
    55                clusters = "1"
    66                psegs    = "9"
    7                 ttys     = "2"
     7                ttys     = "8"
    88                fbs      = "1"
    9                 vspaces  = "1"
     9                vspaces  = "4"
    1010                globals  = "13" >
    1111
    1212        <clusterset>
    1313                <cluster index  = "0"
    14                          procs  = "2" />
     14                         procs  = "4" />
    1515        </clusterset>
    1616
     
    139139                                        <vobj   name    = "tty"
    140140                                                        type    = "PERI"
    141                                                         length  = "0x00000100" />
     141                                                        length  = "0x00001000" />
    142142                                </vseg>
    143143
     
    149149                                        <vobj   name    = "timer"
    150150                                                        type    = "PERI"
    151                                                         length  = "0x00000080" />
     151                                                        length  = "0x00001000" />
    152152                                </vseg>
    153153
     
    169169                                        <vobj   name    = "dma"
    170170                                                        type    = "PERI"
    171                                                         length  = "0x00000100" />
     171                                                        length  = "0x00001000" />
    172172                                </vseg>
    173173
     
    194194
    195195          <vspaceset>
    196                 <vspace name      = "display"
    197                         startname = "seg_data_display" >
    198 
    199                         <vseg   name      = "seg_data_display"
     196                <vspace name      = "router"
     197                        startname = "seg_data_router" >
     198
     199                        <vseg   name      = "seg_data_router"
    200200                                vbase     = "0x00800000"
    201                                 mode      = "C_WU"
    202                                 psegname  = "PSEG_RAU" >
    203                                                             <vobj   name        = "seg_data_display"
     201                                mode      = "__WU"
     202                                psegname  = "PSEG_RAU" >
     203                                                            <vobj   name        = "seg_data_router"
     204                                                                        type    = "ELF"
     205                                                                        length  = "0x00010000"
     206                                        binpath = "build/router.elf" />
     207                                                </vseg>
     208
     209                        <vseg   name      = "seg_code_router"
     210                                vbase     = "0x00400000"
     211                                mode      = "CX_U"
     212                                psegname  = "PSEG_RAU" >
     213                                                            <vobj   name        = "seg_code_router"
    204214                                                                        type    = "ELF"
    205215                                                                            length  = "0x00010000"
    206                                         binpath = "build/display.elf" />
     216                                        binpath = "build/router.elf" />
     217                                                </vseg>
     218
     219                        <vseg   name      = "seg_ptab"
     220                                vbase     = "0x00300000"
     221                                mode      = "C___"
     222                                psegname  = "PSEG_RAU" >
     223                                <vobj   name    = "ptab_router"
     224                                        type    = "PTAB"
     225                                        length  = "0x00012000"
     226                                        align   = "13" />
     227                        </vseg>
     228
     229                        <vseg   name      = "seg_stack_producer"
     230                                                vbase     = "0x00010000"
     231                                mode      = "C_WU"
     232                                psegname  = "PSEG_RAU" >
     233                                                            <vobj   name        = "stack_producer"
     234                                                                        type    = "BUFFER"
     235                                                                            length  = "0x00010000" />
     236                                                </vseg>
     237
     238                        <vseg   name      = "seg_stack_consumer"
     239                                                vbase     = "0x00020000"
     240                                mode      = "C_WU"
     241                                psegname  = "PSEG_RAU" >
     242                                                            <vobj   name        = "stack_consumer"
     243                                                                        type    = "BUFFER"
     244                                                                            length  = "0x00010000" />
     245                                                </vseg>
     246
     247                        <vseg   name      = "seg_stack_router_A"
     248                                                vbase     = "0x00030000"
     249                                mode      = "C_WU"
     250                                psegname  = "PSEG_RAU" >
     251                                                            <vobj   name        = "stack_router_A"
     252                                                                        type    = "BUFFER"
     253                                                                            length  = "0x00010000" />
     254                                                </vseg>
     255
     256                        <vseg   name      = "seg_stack_router_B"
     257                                                vbase     = "0x00040000"
     258                                mode      = "C_WU"
     259                                psegname  = "PSEG_RAU" >
     260                                                            <vobj   name        = "stack_router_B"
     261                                                                        type    = "BUFFER"
     262                                                                            length  = "0x00010000" />
     263                                                </vseg>
     264
     265                        <vseg   name      = "seg_mwmr_channels"
     266                                vbase     = "0x00050000"
     267                                mode      = "__WU"
     268                                psegname  = "PSEG_RAU" >
     269                                                            <vobj   name        = "mwmr_in"
     270                                                                        type    = "MWMR"
     271                                                                            length  = "0x00000020" />
     272                                                            <vobj   name        = "mwmr_out"
     273                                                                        type    = "MWMR"
     274                                                                            length  = "0x00000020" />
     275                                                </vseg>
     276
     277                        <task   name      = "producer"
     278                                clusterid = "0"
     279                                proclocid = "0"
     280                                stackname = "stack_producer"
     281                                startid   = "0"
     282                                usetty    = "1" />
     283
     284                        <task   name      = "consumer"
     285                                clusterid = "0"
     286                                proclocid = "1"
     287                                stackname = "stack_consumer"
     288                                startid   = "1"
     289                                usetty    = "1" />
     290
     291                        <task   name      = "router_A"
     292                                clusterid = "0"
     293                                proclocid = "2"
     294                                stackname = "stack_router_A"
     295                                startid   = "2"
     296                                usetty    = "1" />
     297
     298                        <task   name      = "router_B"
     299                                clusterid = "0"
     300                                proclocid = "3"
     301                                stackname = "stack_router_B"
     302                                startid   = "2"
     303                                usetty    = "1" />
     304                </vspace>
     305
     306                <vspace name      = "hello"
     307                        startname = "seg_data_hello" >
     308
     309                        <vseg   name      = "seg_data_hello"
     310                                vbase     = "0x00800000"
     311                                mode      = "C_WU"
     312                                psegname  = "PSEG_RAU" >
     313                                                            <vobj   name        = "seg_data_hello"
     314                                                                        type    = "ELF"
     315                                                                            length    = "0x00010000"
     316                                        binpath = "build/hello.elf" />
     317                                                </vseg>
     318
     319                        <vseg   name      = "seg_code_hello"
     320                                vbase     = "0x00400000"
     321                                mode      = "CX_U"
     322                                psegname  = "PSEG_RAU" >
     323                                                            <vobj   name        = "seg_code_hello"
     324                                                                        type    = "ELF"
     325                                                                            length    = "0x00010000"
     326                                        binpath = "build/hello.elf" />
    207327                                                </vseg>
    208328
     
    217337                        </vseg>
    218338
     339                        <vseg   name      = "seg_stack"
     340                                vbase     = "0x00000000"
     341                                mode      = "C_WU"
     342                                psegname  = "PSEG_RAU" >
     343                                                            <vobj   name        = "stack"
     344                                                                        type    = "BUFFER"
     345                                                                            length  = "0x00010000" />
     346                                                </vseg>
     347
     348
     349                        <task   name      = "main_hello"
     350                                clusterid = "0"
     351                                proclocid = "2"
     352                                stackname = "stack"
     353                                startid   = "0"
     354                                usetty    = "1" />
     355                </vspace>
     356
     357                <vspace name      = "pgcd"
     358                        startname = "seg_data_pgcd" >
     359
     360                        <vseg   name      = "seg_data_pgcd"
     361                                vbase     = "0x00800000"
     362                                mode      = "C_WU"
     363                                psegname  = "PSEG_RAU" >
     364                                                            <vobj   name        = "seg_data_pgcd"
     365                                                                        type    = "ELF"
     366                                                                            length  = "0x00010000"
     367                                        binpath = "build/pgcd.elf" />
     368                                                </vseg>
     369
     370                        <vseg   name      = "seg_ptab"
     371                                vbase     = "0x00300000"
     372                                mode      = "C___"
     373                                psegname  = "PSEG_RAU" >
     374                                <vobj   name    = "ptab"
     375                                        type    = "PTAB"
     376                                        length  = "0x00012000"
     377                                        align   = "13" />
     378                        </vseg>
     379
     380                        <vseg   name      = "seg_code_pgcd"
     381                                vbase     = "0x00400000"
     382                                mode      = "CX_U"
     383                                psegname  = "PSEG_RAU" >
     384                                                            <vobj   name        = "seg_code_pgcd"
     385                                                                        type    = "ELF"
     386                                                                            length  = "0x00010000"
     387                                        binpath = "build/pgcd.elf" />
     388                                                </vseg>
     389
     390                        <vseg   name      = "seg_stack"
     391                                vbase     = "0x00000000"
     392                                mode      = "C_WU"
     393                                psegname  = "PSEG_RAU" >
     394                                                            <vobj   name        = "stack"
     395                                                                        type    = "BUFFER"
     396                                                                            length  = "0x00010000" />
     397                                                </vseg>
     398
     399                        <task   name      = "main_pgcd"
     400                                clusterid = "0"
     401                                proclocid = "3"
     402                                stackname = "stack"
     403                                startid   = "0"
     404                                usetty    = "1" />
     405                </vspace>
     406
     407                <vspace name      = "display"
     408                        startname = "seg_data_display" >
     409
     410                        <vseg   name      = "seg_data_display"
     411                                vbase     = "0x00800000"
     412                                mode      = "C_WU"
     413                                psegname  = "PSEG_RAU" >
     414                                                            <vobj   name        = "seg_data_display"
     415                                                                        type    = "ELF"
     416                                                                            length  = "0x00010000"
     417                                        binpath = "build/display.elf" />
     418                                                </vseg>
     419
     420                        <vseg   name      = "seg_ptab_display"
     421                                vbase     = "0x00300000"
     422                                mode      = "C___"
     423                                psegname  = "PSEG_RAU" >
     424                                <vobj   name    = "ptab"
     425                                        type    = "PTAB"
     426                                        length  = "0x00012000"
     427                                        align   = "13" />
     428                        </vseg>
     429
    219430                        <vseg   name      = "seg_code_display"
    220431                                vbase     = "0x00400000"
     
    238449                        <task   name      = "main_display"
    239450                                clusterid = "0"
    240                                 proclocid = "1"
     451                                proclocid = "3"
    241452                                stackname = "stack_display"
    242453                                startid   = "0"
  • soft/giet_vm/sys/vm_handler.c

    r167 r170  
    9898{
    9999    unsigned int    ptba;
    100     unsigned int*   pte2;
    101     unsigned int    flags_value;
    102     unsigned int    ppn_value;
     100
     101    register unsigned int*   pte2;
     102    register unsigned int    flags_value;
     103    register unsigned int    ppn_value;
    103104
    104105    unsigned int    ix1 = vpn >> 9;
     
    117118
    118119        // gets ppn_value and flags_value, after temporary DTLB desactivation
    119         asm volatile ( "li      $26, 0xB    \n"     /* DTLB unactivated */
     120        asm volatile ( "move    $27, %2     \n"     /* $27 <= pte2      */
     121                       "li      $26, 0xB    \n"     /* DTLB unactivated */
    120122                       "mtc2    $26, $1     \n"
    121                        "lw      %0,  0(%2) \n"     /* read flags       */
    122                        "lw      %1,  4(%2) \n"     /* read ppn         */
     123                       "lw      %0,  0($27) \n"     /* read flags       */
     124                       "lw      %1,  4($27) \n"     /* read ppn         */
    123125                       "li      $26, 0xF    \n"
    124126                       "mtc2    $26, $1     \n"     /* DTLB activated   */
Note: See TracChangeset for help on using the changeset viewer.