Changeset 295 for soft/giet_vm/mappings


Ignore:
Timestamp:
Mar 26, 2014, 6:44:44 PM (10 years ago)
Author:
alain
Message:

Introducing a major release, to suppoort the tsar_generic_leti platform
and the various (external or internal) peripherals configurations.
The map.xml format has been modified, in order to support the new
vci_iopic componentand a new policy for peripherals initialisation.
The IRQs are nom described in the XICU and IOPIC components
(and not anymore in the processors).
To enforce this major change, the map.xml file signature changed:
The signature value must be: 0xDACE2014

This new release has been tested on the tsar_generic_leti platform
for the following mappings:

  • 4c_4p_sort_leti
  • 4c_4p_sort_leti_ext
  • 4c_4p_transpose_leti
  • 4c_4p_transpose_leti_ext
  • 4c_1p_four_leti_ext
Location:
soft/giet_vm/mappings
Files:
3 added
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/mappings/4c_4p_sort_leti.xml

    r292 r295  
    11<?xml version="1.0"?>
    22
    3 <mapping_info signature    = "0xdeadbeef"
    4               name         = "4c_4p_sort_intact"
     3<mapping_info signature    = "0xdace2014"
     4              name         = "4c_4p_sort_leti"
    55              x_size       = "2"
    6               y_size       = "2"
     6              y_size       = "3"
    77              x_width      = "4"
    88              y_width      = "4"
    9               vspaces      = "1"
    10                           increment    = "0x10000"
    11                           irq_per_proc = "4" >
    12 
    13 *** The "increment" parameter is the virtual address cluster increment
    14 *** The physical address cluster increment is 0x10000000000 / NB_CLUSTERS
    15 
    16 *** This first section describes an instance of the "tsar_generic_iob" architecture
    17 *** with 4 clusters, 1 processor per cluster and 40 bits physical address.
     9                          irq_per_proc = "4"
     10              use_ramdisk  = "1"
     11                          x_io         = "0"
     12              y_io         = "0" >
     13
     14*** This mapping is for the "tsar_generic_leti" hardware architecture
     15*** with 4 clusters containing processors and 4 processors per cluster
     16*** 40 bits physical address, and 64 Mbytes per cluster.
     17*** There is 4 IRQ inputs per processor
     18*** It does not use the external peripherals.
     19*** It uses the RAMDISK in cluster(0,0)
     20*** It uses the mono-channel TTY implemented in cluster(0,0).
    1821
    1922    <clusterset>
    20 
    2123        <cluster x = "0" y = "0" >
    22             <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x0000000000" length = "0x0000800000" />
     24            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x0000000000" length = "0x0400000000" />
    2325            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x00F0000000" length = "0x0000002000" />
    2426            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x00E0000000" length = "0x0000001000" />
    25 
    26 *** Non replicated peripherals (including the ROM containing the preloader code)
    27 
    2827            <pseg name = "PSEG_IOC"  type = "PERI" base = "0x00F2000000" length = "0x0000001000" />
    2928            <pseg name = "PSEG_TTY"  type = "PERI" base = "0x00F4000000" length = "0x0000001000" />
    3029
    31             <proc index  = "0" >
    32                 <irq type = "SOFT" icuid = "0"  isr = "ISR_WAKUP" />
    33                 <irq type = "TIME" icuid = "4"  isr = "ISR_SWITCH" />
    34                 <irq type = "HARD" icuid = "8"  isr = "ISR_DEFAULT" />
    35                 <irq type = "HARD" icuid = "9"  isr = "ISR_IOC" />
    36                 <irq type = "HARD" icuid = "10" isr = "ISR_TTY" />
    37             </proc>
    38             <proc index  = "1" >
    39                 <irq type = "SOFT" icuid = "1"  isr = "ISR_WAKUP" />
    40                 <irq type = "TIME" icuid = "5"  isr = "ISR_SWITCH" />
    41             </proc>
    42             <proc index  = "2" >
    43                 <irq type = "SOFT" icuid = "2"  isr = "ISR_WAKUP" />
    44                 <irq type = "TIME" icuid = "6"  isr = "ISR_SWITCH" />
    45             </proc>
    46             <proc index  = "3" >
    47                 <irq type = "SOFT" icuid = "3"  isr = "ISR_WAKUP" />
    48                 <irq type = "TIME" icuid = "7"  isr = "ISR_SWITCH" />
    49             </proc>
    50 
    51             <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" />
    52             <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1"  />
    53             <periph type = "IOC"  psegname = "PSEG_IOC"  channels = "1" subtype = "BDV" />
    54             <periph type = "TTY"  psegname = "PSEG_TTY"  channels = "1"  />
    55 
     30            <proc index  = "0" />
     31            <proc index  = "1" />
     32            <proc index  = "2" />
     33            <proc index  = "3" />
     34
     35            <periph type = "MMC"  psegname = "PSEG_MMC"  >
     36            </periph>
     37            <periph type = "IOC"  psegname = "PSEG_IOC"  subtype = "BDV" >
     38            </periph>
     39            <periph type = "TTY"  psegname = "PSEG_TTY"  channels = "1" >
     40            </periph>
     41            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" >
     42                <irq srcid = "0"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "0"  dstid = "0" />
     43                <irq srcid = "1"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "0"  dstid = "1" />
     44                <irq srcid = "2"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "0"  dstid = "2" />
     45                <irq srcid = "3"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "0"  dstid = "3" />
     46                <irq srcid = "4"  srctype = "WTI"  isr = "ISR_NIC_RX"  channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     47                <irq srcid = "5"  srctype = "WTI"  isr = "ISR_NIC_RX"  channel = "1"  dstx = "0"  dsty = "0"  dstid = "0" />
     48                <irq srcid = "6"  srctype = "WTI"  isr = "ISR_NIC_TX"  channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     49                <irq srcid = "7"  srctype = "WTI"  isr = "ISR_NIC_TX"  channel = "1"  dstx = "0"  dsty = "0"  dstid = "0" />
     50                <irq srcid = "8"  srctype = "WTI"  isr = "ISR_CMA"     channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     51                <irq srcid = "9"  srctype = "WTI"  isr = "ISR_CMA"     channel = "1"  dstx = "0"  dsty = "0"  dstid = "0" />
     52                <irq srcid = "10" srctype = "WTI"  isr = "ISR_CMA"     channel = "2"  dstx = "0"  dsty = "0"  dstid = "0" />
     53                <irq srcid = "11" srctype = "WTI"  isr = "ISR_CMA"     channel = "3"  dstx = "0"  dsty = "0"  dstid = "0" />
     54                <irq srcid = "12" srctype = "WTI"  isr = "ISR_BDV"     channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     55                <irq srcid = "13" srctype = "WTI"  isr = "ISR_TTY_RX"  channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     56
     57                <irq srcid = "0"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "0"  dstid = "0" />
     58                <irq srcid = "1"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "0"  dstid = "1" />
     59                <irq srcid = "2"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "0"  dstid = "2" />
     60                <irq srcid = "3"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "0"  dstid = "3" />
     61
     62                <irq srcid = "8"  srctype = "HWI"  isr = "ISR_DEFAULT"                dstx = "0"  dsty = "0"  dstid = "0" />
     63                <irq srcid = "9"  srctype = "HWI"  isr = "ISR_BDV"     channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     64                <irq srcid = "10" srctype = "HWI"  isr = "ISR_TTY_RX"  channel = "0"  dstx = "0"  dsty = "0"  dstid = "0" />
     65            </periph>
    5666        </cluster>
    5767
    5868        <cluster x = "0" y = "1" >
    59             <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x0100000000" length = "0x0000800000" />
     69            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x0100000000" length = "0x0400000000" />
    6070            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x01F0000000" length = "0x0000002000" />
    6171            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x01E0000000" length = "0x0000001000" />
    6272
    63             <proc index  = "0" >
    64                 <irq type = "SOFT" icuid = "0"  isr = "ISR_WAKUP" />
    65                 <irq type = "TIME" icuid = "4"  isr = "ISR_SWITCH" />
    66                 <irq type = "HARD" icuid = "8"  isr = "ISR_DEFAULT" />
    67             </proc>
    68             <proc index  = "1" >
    69                 <irq type = "SOFT" icuid = "1"  isr = "ISR_WAKUP" />
    70                 <irq type = "TIME" icuid = "5"  isr = "ISR_SWITCH" />
    71             </proc>
    72             <proc index  = "2" >
    73                 <irq type = "SOFT" icuid = "2"  isr = "ISR_WAKUP" />
    74                 <irq type = "TIME" icuid = "6"  isr = "ISR_SWITCH" />
    75             </proc>
    76             <proc index  = "3" >
    77                 <irq type = "SOFT" icuid = "3"  isr = "ISR_WAKUP" />
    78                 <irq type = "TIME" icuid = "7"  isr = "ISR_SWITCH" />
    79             </proc>
    80 
    81             <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" />
    82             <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1" />
     73            <proc index  = "0" />
     74            <proc index  = "1" />
     75            <proc index  = "2" />
     76            <proc index  = "3" />
     77
     78            <periph type = "MMC"  psegname = "PSEG_MMC" >
     79            </periph>
     80            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" >
     81                <irq srcid = "0"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "1"  dstid = "0" />
     82                <irq srcid = "1"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "1"  dstid = "1" />
     83                <irq srcid = "2"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "1"  dstid = "2" />
     84                <irq srcid = "3"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "0"  dsty = "1"  dstid = "3" />
     85
     86                <irq srcid = "0"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "1"  dstid = "0" />
     87                <irq srcid = "1"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "1"  dstid = "1" />
     88                <irq srcid = "2"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "1"  dstid = "2" />
     89                <irq srcid = "3"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "0"  dsty = "1"  dstid = "3" />
     90
     91                <irq srcid = "8"  srctype = "HWI"  isr = "ISR_DEFAULT"                dstx = "0"  dsty = "1"  dstid = "0" />
     92            </periph>
    8393        </cluster>
    8494
    8595        <cluster x = "1" y = "0" >
    86             <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x1000000000" length = "0x0000800000" />
     96            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x1000000000" length = "0x0400000000" />
    8797            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x10F0000000" length = "0x0000002000" />
    8898            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x10E0000000" length = "0x0000001000" />
    8999
    90             <proc index  = "0" >
    91                 <irq type = "SOFT" icuid = "0"  isr = "ISR_WAKUP" />
    92                 <irq type = "TIME" icuid = "4"  isr = "ISR_SWITCH" />
    93                 <irq type = "HARD" icuid = "8"  isr = "ISR_DEFAULT" />
    94             </proc>
    95             <proc index  = "1" >
    96                 <irq type = "SOFT" icuid = "1"  isr = "ISR_WAKUP" />
    97                 <irq type = "TIME" icuid = "5"  isr = "ISR_SWITCH" />
    98             </proc>
    99             <proc index  = "2" >
    100                 <irq type = "SOFT" icuid = "2"  isr = "ISR_WAKUP" />
    101                 <irq type = "TIME" icuid = "6"  isr = "ISR_SWITCH" />
    102             </proc>
    103             <proc index  = "3" >
    104                 <irq type = "SOFT" icuid = "3"  isr = "ISR_WAKUP" />
    105                 <irq type = "TIME" icuid = "7"  isr = "ISR_SWITCH" />
    106             </proc>
    107 
    108             <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" />
    109             <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1" />
     100            <proc index  = "0" />
     101            <proc index  = "1" />
     102            <proc index  = "2" />
     103            <proc index  = "3" />
     104
     105            <periph type = "MMC"  psegname = "PSEG_MMC" >
     106            </periph>
     107            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" >
     108                <irq srcid = "0"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "0"  dstid = "0" />
     109                <irq srcid = "1"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "0"  dstid = "1" />
     110                <irq srcid = "2"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "0"  dstid = "2" />
     111                <irq srcid = "3"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "0"  dstid = "3" />
     112
     113                <irq srcid = "0"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "0"  dstid = "0" />
     114                <irq srcid = "1"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "0"  dstid = "1" />
     115                <irq srcid = "2"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "0"  dstid = "2" />
     116                <irq srcid = "3"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "0"  dstid = "3" />
     117
     118                <irq srcid = "8"  srctype = "HWI"  isr = "ISR_DEFAULT"                dstx = "1"  dsty = "0"  dstid = "0" />
     119            </periph>
    110120        </cluster>
    111121
    112122        <cluster x = "1" y = "1" >
    113             <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x1100000000" length = "0x0000800000" />
     123            <pseg name = "PSEG_RAM"  type = "RAM"  base = "0x1100000000" length = "0x0400000000" />
    114124            <pseg name = "PSEG_XCU"  type = "PERI" base = "0x11F0000000" length = "0x0000002000" />
    115125            <pseg name = "PSEG_MMC"  type = "PERI" base = "0x11E0000000" length = "0x0000001000" />
    116126
    117             <proc index  = "0" >
    118                 <irq type = "SOFT" icuid = "0"  isr = "ISR_WAKUP" />
    119                 <irq type = "TIME" icuid = "4"  isr = "ISR_SWITCH" />
    120                 <irq type = "HARD" icuid = "8"  isr = "ISR_DEFAULT" />
    121             </proc>
    122             <proc index  = "1" >
    123                 <irq type = "SOFT" icuid = "1"  isr = "ISR_WAKUP" />
    124                 <irq type = "TIME" icuid = "5"  isr = "ISR_SWITCH" />
    125             </proc>
    126             <proc index  = "2" >
    127                 <irq type = "SOFT" icuid = "2"  isr = "ISR_WAKUP" />
    128                 <irq type = "TIME" icuid = "6"  isr = "ISR_SWITCH" />
    129             </proc>
    130             <proc index  = "3" >
    131                 <irq type = "SOFT" icuid = "3"  isr = "ISR_WAKUP" />
    132                 <irq type = "TIME" icuid = "7"  isr = "ISR_SWITCH" />
    133             </proc>
    134 
    135             <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" />
    136             <periph type = "MMC"  psegname = "PSEG_MMC"  channels = "1" />
    137         </cluster>
     127            <proc index  = "0" />
     128            <proc index  = "1" />
     129            <proc index  = "2" />
     130            <proc index  = "3" />
     131
     132            <periph type = "MMC"  psegname = "PSEG_MMC" >
     133            </periph>
     134            <periph type = "XCU"  psegname = "PSEG_XCU"  channels = "16" >
     135                <irq srcid = "0"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "1"  dstid = "0" />
     136                <irq srcid = "1"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "1"  dstid = "1" />
     137                <irq srcid = "2"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "1"  dstid = "2" />
     138                <irq srcid = "3"  srctype = "WTI"  isr = "ISR_WAKUP"                  dstx = "1"  dsty = "1"  dstid = "3" />
     139
     140                <irq srcid = "0"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "1"  dstid = "0" />
     141                <irq srcid = "1"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "1"  dstid = "1" />
     142                <irq srcid = "2"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "1"  dstid = "2" />
     143                <irq srcid = "3"  srctype = "PTI"  isr = "ISR_TICK"                   dstx = "1"  dsty = "1"  dstid = "3" />
     144
     145                <irq srcid = "8"  srctype = "HWI"  isr = "ISR_DEFAULT"                dstx = "1"  dsty = "1"  dstid = "0" />
     146            </periph>
     147        </cluster>
     148
     149*** empty clusters
     150
     151        <cluster x = "0" y = "2" >
     152        </cluster>
     153        <cluster x = "1" y = "2" >
     154        </cluster>
     155
    138156    </clusterset>
    139157
    140158    <globalset>
    141159
    142 *** Segments used by the boot code / A[31:28] = 0x0 / Identity mapping
    143 - seg_boot_mapping is loaded by the boot-loader. It contains the mapping info. The content is reused by the kernel.
    144 - seg_boot_code and seg_boot data are loaded by the preloader, used by the boot-loader The content is not reused by the kernel.
    145 - seg_boot_stack is contains the stacks used by all processors during reset and boot. The content is not reused by the Kernel.
    146 - seg_boot_buffer is used by the boot-loader. It can contain a complete .elf file. The content is not reused by the kernel.
     160*** Global vsegs associated to peripherals  replicated in all clusters (XCU, MMC, SCHED)
     161*** must respect the following policy (checked by the XML parser) :
     162*** vbase[x,y] = vbase[0,0] + 64K * cluster_xy
     163*** pbase[x,y] = pbase[0,0] + 4G  * cluster_xy
     164*** ( with cluster_xy = x*16 + y )
     165*** the vseg type is entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000)
     166*** The cluster index must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000)
     167
     168*** 5 global vsegs used by the boot code / A[31:28] = 0x0 / Identity mapping
     169*** seg_boot_mapping is loaded by the boot-loader. It contains the mapping info.  Reused by the kernel.
     170*** seg_boot_code and seg_boot data are loaded by the preloader, used by the boot-loader.  Not reused by the kernel.
     171*** seg_boot_stack contains the stacks used by all processors during reset and boot.  Not reused by the Kernel.
     172*** seg_boot_buffer is used by the boot-loader. It contains a complete .elf file.  Not reused by the kernel.
    147173
    148174        <vseg name = "seg_boot_code"      vbase = "0x00010000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
     
    153179        </vseg>
    154180        <vseg name = "seg_boot_buffer"    vbase = "0x00040000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
    155             <vobj name = "boot_buffer"    type = "BUFFER" length = "0x00020000" />
    156         </vseg>
    157         <vseg name = "seg_boot_stack"     vbase = "0x00060000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
    158             <vobj name = "boot_stack"     type = "BUFFER" length = "0x00090000" />
     181            <vobj name = "boot_buffer"    type = "BUFFER" length = "0x00060000" />
     182        </vseg>
     183        <vseg name = "seg_boot_stack"     vbase = "0x000A0000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
     184            <vobj name = "boot_stack"     type = "BUFFER" length = "0x00050000" />
    159185        </vseg>
    160186        <vseg name = "seg_boot_mapping"   vbase = "0x000F0000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
    161187            <vobj name = "boot_mapping"   type = "BLOB"   length = "0x00010000" binpath = "map.bin" />
    162188        </vseg>
    163 
    164 *** Segments used by the kernel / A[31:28] = 0x8
     189       
     190*** 4 global vsegs used by the kernel / A[31:28] = 0x8  / No identity mapping constraint
    165191 
    166192        <vseg name = "seg_kernel_code"    vbase = "0x80000000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_RAM" >
     
    177203        </vseg>
    178204
    179 *** Segments for non replicated peripherals / A[31:28] = 0xF / Identity mapping
    180 
    181         <vseg name = "seg_ioc"            vbase = "0xF2000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_IOC" ident = "1" >
     205*** 2 global vsegs for non replicated peripherals in cluster(0,0) / A[31:28] = 0xF /
     206
     207        <vseg name = "seg_ioc"            vbase = "0xF2000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_IOC" >
    182208            <vobj name = "ioc"            type = "PERI" length  = "0x00001000" />
    183209        </vseg>
    184         <vseg name = "seg_tty"            vbase = "0xF4000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_TTY" ident = "1" >
     210
     211        <vseg name = "seg_tty"            vbase = "0xF4000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_TTY" >
    185212                        <vobj name = "tty"            type = "PERI" length  = "0x00001000" />
    186213        </vseg>
    187         <vseg name = "seg_preloader"      vbase = "0x00000000" mode = "CXW_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
     214
     215*** 2 global vsegs for pseudo-peripherals (PRELOADER and RAMDISK) / A[31:28] = 0x0
     216
     217        <vseg name = "seg_reset_code"     vbase = "0x00000000" mode = "CX__" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
    188218            <vobj name = "preloader"      type = "BUFFER" length  = "0x00010000" />
    189219        </vseg>
    190220
    191 *** Segments for replicated ICUS / A[31:24] = 0xF0 / Increment = 0x10000 / Identity mapping in cluster 0           
     221        <vseg name = "seg_ram_disk"       vbase = "0x02000000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" ident = "1" >
     222            <vobj name = "ramdisk"        type = "BUFFER" length  = "0x02000000" />
     223        </vseg>
     224
     225*** 4 global vsegs for replicated ICUS / A[31:24] = 0xF0 / Increment = 0x10000 / Identity mapping in cluster (0,0)           
    192226
    193227        <vseg name = "seg_icu_0"          vbase = "0xF0000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_XCU" ident = "1" >
     
    204238        </vseg>
    205239
    206 *** segments for replicated MMC / A[31:24] = 0xE0 / Increment = 0x10000 / Identity mapping in cluster 0
    207 *** The peripheral type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000)
    208 *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000)
     240*** 4 global vsegs for replicated MMC / A[31:24] = 0xE0 / Increment = 0x10000 / Identity mapping in cluster 0
    209241
    210242        <vseg name = "seg_memc_0"         vbase = "0xE0000000" mode = "__W_" x = "0" y = "0" psegname = "PSEG_MMC" ident = "1" >
     
    221253        </vseg>
    222254
    223 *** segments for replicated schedulers / A[31:28] = 0xC / Increment = 0x10000
    224 *** The type must be entirely defined by the 8 virtual address MSB bits (mask_type = 0xFF000000)
    225 *** The cluster id must be encoded in the next 8 virtual address bits (cluster_mask = 0x00FF0000)
     255*** 4 global vsegs for replicated schedulers / A[31:28] = 0xC / Increment = 0x10000
    226256
    227257        <vseg name = "seg_sched_0"        vbase = "0xC0000000" mode = "C_W_" x = "0" y = "0" psegname = "PSEG_RAM" >
     
    237267            <vobj name = "sched_3"        type = "SCHED" length  = "0x00008000" />
    238268        </vseg>
    239 ***
     269
    240270    </globalset>
    241271
     
    249279
    250280        <vspace name = "sort" startname = "sort_data" >
    251             <vseg name = "seg_sort_code"   vbase = "0x00400000" mode = "CXWU" x = "1" y = "1" psegname = "PSEG_RAM" >
    252                 <vobj name = "sort_code"   type  = "ELF" length = "0x00010000" binpath = "build/sort/sort.elf" />
    253             </vseg>
    254             <vseg name = "seg_sort_data"   vbase = "0x00500000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" >
    255                 <vobj name = "sort_data"   type  = "ELF" length = "0x00010000" binpath = "build/sort/sort.elf" />
    256             </vseg>
    257             <vseg name = "seg_sort_ptab"   vbase = "0x00600000" mode = "C_W_" x = "1" y = "1" psegname = "PSEG_RAM" >
    258                 <vobj name = "sort_ptab"   type  = "PTAB" length  = "0x00020000" align = "13" />
    259             </vseg>
    260             <vseg name = "seg_sort_stack00" vbase = "0x00800000" mode = "C_WU" x = "0" y = "0" psegname = "PSEG_RAM" >
    261                 <vobj name = "sort_stack0"  type         = "BUFFER" length = "0x00010000" />
    262                 <vobj name = "sort_stack1"  type         = "BUFFER" length = "0x00010000" />
    263                 <vobj name = "sort_stack2"  type         = "BUFFER" length = "0x00010000" />
    264                 <vobj name = "sort_stack3"  type         = "BUFFER" length = "0x00010000" />
    265                 <vobj name = "sort_heap0"   type         = "BUFFER" length = "0x00010000" />
    266             </vseg>
    267             <vseg name = "seg_sort_stack01" vbase = "0x00A00000" mode = "C_WU" x = "0" y = "1" psegname = "PSEG_RAM" >
    268                 <vobj name = "sort_stack4"  type         = "BUFFER" length = "0x00010000" />
    269                 <vobj name = "sort_stack5"  type         = "BUFFER" length = "0x00010000" />
    270                 <vobj name = "sort_stack6"  type         = "BUFFER" length = "0x00010000" />
    271                 <vobj name = "sort_stack7"  type         = "BUFFER" length = "0x00010000" />
    272                 <vobj name = "sort_heap1"   type         = "BUFFER" length = "0x00010000" />
    273             </vseg>
    274             <vseg name = "seg_sort_stack10" vbase = "0x00C00000" mode = "C_WU" x = "1" y = "0" psegname = "PSEG_RAM" >
    275                 <vobj name = "sort_stack8"  type         = "BUFFER" length = "0x00010000" />
    276                 <vobj name = "sort_stack9"  type         = "BUFFER" length = "0x00010000" />
    277                 <vobj name = "sort_stack10" type         = "BUFFER" length = "0x00010000" />
    278                 <vobj name = "sort_stack11" type         = "BUFFER" length = "0x00010000" />
    279                 <vobj name = "sort_heap2"   type         = "BUFFER" length = "0x00010000" />
    280             </vseg>
    281             <vseg name = "seg_sort_stack11" vbase = "0x00E00000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" >
    282                 <vobj name = "sort_stack12" type         = "BUFFER" length = "0x00010000" />
    283                 <vobj name = "sort_stack13" type         = "BUFFER" length = "0x00010000" />
    284                 <vobj name = "sort_stack14" type         = "BUFFER" length = "0x00010000" />
    285                 <vobj name = "sort_stack15" type         = "BUFFER" length = "0x00010000" />
    286                 <vobj name = "sort_heap3"   type         = "BUFFER" length = "0x00010000" />
    287             </vseg>
    288                         <vseg name = "seg_params"       vbase = "0x00F00000" mode = "C_WU" x = "0" y = "0" psegname = "PSEG_RAM" >
    289                                 <vobj name = "nb_thread"    type     = "CONST"  length = "0x4" init = "16" />
     281            <vseg name = "seg_sort_code"     vbase = "0x00400000" mode = "CXWU" x = "1" y = "1" psegname = "PSEG_RAM" >
     282                <vobj name = "sort_code"     type  = "ELF" length = "0x00010000" binpath = "build/sort/sort.elf" />
     283            </vseg>
     284            <vseg name = "seg_sort_data"     vbase = "0x00500000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" >
     285                <vobj name = "sort_data"     type  = "ELF" length = "0x00010000" binpath = "build/sort/sort.elf" />
     286            </vseg>
     287            <vseg name = "seg_sort_ptab"     vbase = "0x00600000" mode = "C_W_" x = "1" y = "1" psegname = "PSEG_RAM" >
     288                <vobj name = "sort_ptab"     type  = "PTAB" length  = "0x00020000" align = "13" />
     289            </vseg>
     290            <vseg name = "seg_sort_stack_0"  vbase = "0x00200000" mode = "C_WU" x = "0" y = "0" psegname = "PSEG_RAM" >
     291                <vobj name = "sort_stack_00" type  = "BUFFER" length = "0x00010000" />
     292                <vobj name = "sort_stack_01" type  = "BUFFER" length = "0x00010000" />
     293                <vobj name = "sort_stack_02" type  = "BUFFER" length = "0x00010000" />
     294                <vobj name = "sort_stack_03" type  = "BUFFER" length = "0x00010000" />
     295                <vobj name = "sort_heap_0"   type  = "BUFFER" length = "0x00040000" />
     296            </vseg>
     297            <vseg name = "seg_sort_stack_1"  vbase = "0x00280000" mode = "C_WU" x = "0" y = "1" psegname = "PSEG_RAM" >
     298                <vobj name = "sort_stack_10" type  = "BUFFER" length = "0x00010000" />
     299                <vobj name = "sort_stack_11" type  = "BUFFER" length = "0x00010000" />
     300                <vobj name = "sort_stack_12" type  = "BUFFER" length = "0x00010000" />
     301                <vobj name = "sort_stack_13" type  = "BUFFER" length = "0x00010000" />
     302                <vobj name = "sort_heap_1"   type  = "BUFFER" length = "0x00040000" />
     303            </vseg>
     304            <vseg name = "seg_sort_stack_2"  vbase = "0x00300000" mode = "C_WU" x = "1" y = "0" psegname = "PSEG_RAM" >
     305                <vobj name = "sort_stack_20" type  = "BUFFER" length = "0x00010000" />
     306                <vobj name = "sort_stack_21" type  = "BUFFER" length = "0x00010000" />
     307                <vobj name = "sort_stack_22" type  = "BUFFER" length = "0x00010000" />
     308                <vobj name = "sort_stack_23" type  = "BUFFER" length = "0x00010000" />
     309                <vobj name = "sort_heap_2"   type  = "BUFFER" length = "0x00040000" />
     310            </vseg>
     311            <vseg name = "seg_sort_stack_3"  vbase = "0x00380000" mode = "C_WU" x = "1" y = "1" psegname = "PSEG_RAM" >
     312                <vobj name = "sort_stack_30" type  = "BUFFER" length = "0x00010000" />
     313                <vobj name = "sort_stack_31" type  = "BUFFER" length = "0x00010000" />
     314                <vobj name = "sort_stack_32" type  = "BUFFER" length = "0x00010000" />
     315                <vobj name = "sort_stack_33" type  = "BUFFER" length = "0x00010000" />
     316                <vobj name = "sort_heap_3"   type  = "BUFFER" length = "0x00040000" />
     317            </vseg>
     318
     319*** This vobj emulates a command line argument for the sort application
     320
     321                        <vseg name = "seg_params"       vbase = "0x00100000" mode = "C_WU" x = "0" y = "0" psegname = "PSEG_RAM" >
     322                                <vobj name = "nb_thread"    type  = "CONST"  length = "0x4" init = "16" />
    290323                        </vseg>
    291             <task name = "sort_0"  x = "0" y = "0" proclocid = "0" stackname = "sort_stack0"  heapname = "sort_heap0" startid = "0" usetty = "1" />
    292             <task name = "sort_1"  x = "0" y = "0" proclocid = "1" stackname = "sort_stack1"  heapname = "sort_heap0" startid = "0" usetty = "1" />
    293             <task name = "sort_2"  x = "0" y = "0" proclocid = "2" stackname = "sort_stack2"  heapname = "sort_heap0" startid = "0" usetty = "1" />
    294             <task name = "sort_3"  x = "0" y = "0" proclocid = "3" stackname = "sort_stack3"  heapname = "sort_heap0" startid = "0" usetty = "1" />
    295             <task name = "sort_4"  x = "0" y = "1" proclocid = "0" stackname = "sort_stack4"  heapname = "sort_heap1" startid = "0" usetty = "1" />
    296             <task name = "sort_5"  x = "0" y = "1" proclocid = "1" stackname = "sort_stack5"  heapname = "sort_heap1" startid = "0" usetty = "1" />
    297             <task name = "sort_6"  x = "0" y = "1" proclocid = "2" stackname = "sort_stack6"  heapname = "sort_heap1" startid = "0" usetty = "1" />
    298             <task name = "sort_7"  x = "0" y = "1" proclocid = "3" stackname = "sort_stack7"  heapname = "sort_heap1" startid = "0" usetty = "1" />
    299             <task name = "sort_8"  x = "1" y = "0" proclocid = "0" stackname = "sort_stack8"  heapname = "sort_heap2" startid = "0" usetty = "1" />
    300             <task name = "sort_9"  x = "1" y = "0" proclocid = "1" stackname = "sort_stack9"  heapname = "sort_heap2" startid = "0" usetty = "1" />
    301             <task name = "sort_10" x = "1" y = "0" proclocid = "2" stackname = "sort_stack10" heapname = "sort_heap2" startid = "0" usetty = "1" />
    302             <task name = "sort_11" x = "1" y = "0" proclocid = "3" stackname = "sort_stack11" heapname = "sort_heap2" startid = "0" usetty = "1" />
    303             <task name = "sort_12" x = "1" y = "1" proclocid = "0" stackname = "sort_stack12" heapname = "sort_heap3" startid = "0" usetty = "1" />
    304             <task name = "sort_13" x = "1" y = "1" proclocid = "1" stackname = "sort_stack13" heapname = "sort_heap3" startid = "0" usetty = "1" />
    305             <task name = "sort_14" x = "1" y = "1" proclocid = "2" stackname = "sort_stack14" heapname = "sort_heap3" startid = "0" usetty = "1" />
    306             <task name = "sort_15" x = "1" y = "1" proclocid = "3" stackname = "sort_stack15" heapname = "sort_heap3" startid = "0" usetty = "1" />
    307 
     324
     325            <task name = "sort_00" x = "0" y = "0" proclocid = "0" stackname = "sort_stack_00"  heapname = "sort_heap_0" startid = "0"  />
     326            <task name = "sort_01" x = "0" y = "0" proclocid = "1" stackname = "sort_stack_01"  heapname = "sort_heap_0" startid = "0"  />
     327            <task name = "sort_02" x = "0" y = "0" proclocid = "2" stackname = "sort_stack_02"  heapname = "sort_heap_0" startid = "0"  />
     328            <task name = "sort_03" x = "0" y = "0" proclocid = "3" stackname = "sort_stack_03"  heapname = "sort_heap_0" startid = "0"  />
     329
     330            <task name = "sort_10" x = "0" y = "1" proclocid = "0" stackname = "sort_stack_10"  heapname = "sort_heap_1" startid = "0"  />
     331            <task name = "sort_11" x = "0" y = "1" proclocid = "1" stackname = "sort_stack_11"  heapname = "sort_heap_1" startid = "0"  />
     332            <task name = "sort_12" x = "0" y = "1" proclocid = "2" stackname = "sort_stack_12"  heapname = "sort_heap_1" startid = "0"  />
     333            <task name = "sort_13" x = "0" y = "1" proclocid = "3" stackname = "sort_stack_13"  heapname = "sort_heap_1" startid = "0"  />
     334
     335            <task name = "sort_20" x = "1" y = "0" proclocid = "0" stackname = "sort_stack_20"  heapname = "sort_heap_2" startid = "0"  />
     336            <task name = "sort_21" x = "1" y = "0" proclocid = "1" stackname = "sort_stack_21"  heapname = "sort_heap_2" startid = "0"  />
     337            <task name = "sort_22" x = "1" y = "0" proclocid = "2" stackname = "sort_stack_22"  heapname = "sort_heap_2" startid = "0"  />
     338            <task name = "sort_23" x = "1" y = "0" proclocid = "3" stackname = "sort_stack_23"  heapname = "sort_heap_2" startid = "0"  />
     339
     340            <task name = "sort_30" x = "1" y = "1" proclocid = "0" stackname = "sort_stack_30"  heapname = "sort_heap_3" startid = "0"  />
     341            <task name = "sort_31" x = "1" y = "1" proclocid = "1" stackname = "sort_stack_31"  heapname = "sort_heap_3" startid = "0"  />
     342            <task name = "sort_32" x = "1" y = "1" proclocid = "2" stackname = "sort_stack_32"  heapname = "sort_heap_3" startid = "0"  />
     343            <task name = "sort_33" x = "1" y = "1" proclocid = "3" stackname = "sort_stack_33"  heapname = "sort_heap_3" startid = "0"  />
    308344        </vspace>
    309345    </vspaceset>
Note: See TracChangeset for help on using the changeset viewer.