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
File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_xml/mapping_info.h

    r289 r295  
    3030// - mapping_vspace_t   vspace[] 
    3131// - mapping_vseg_t     vseg[]     
    32 // - mapping_vseg_t     vobj[]   
     32// - mapping_vobj_t     vobj[]   
    3333// - mapping_task_t     task[] 
    3434// - mapping_proc_t     proc[] 
     
    6161#define U_MODE_MASK  0b0001   // user access
    6262
    63 #define IN_MAPPING_SIGNATURE    0xDEADBEEF
     63#define IN_MAPPING_SIGNATURE    0xDACE2014
    6464#define OUT_MAPPING_SIGNATURE   0xBABEF00D
    6565
     
    8585{
    8686    IRQ_TYPE_HWI = 0,        // HARD in map.xml file
    87     IRQ_TYPE_SWI = 1,        // SOFT in map.xml file,
     87    IRQ_TYPE_WTI = 1,        // SOFT in map.xml file,
    8888    IRQ_TYPE_PTI = 2,        // TIME in map.xml file,
    8989};
     
    115115    PERIPH_TYPE_TTY       = 12,
    116116    PERIPH_TYPE_XCU       = 13,
    117 
    118     PERIPH_TYPE_MAX_VALUE = 14,
     117    PERIPH_TYPE_PIC       = 14,
     118
     119    PERIPH_TYPE_MAX_VALUE = 15,
    119120};
    120121
     
    145146    unsigned int globals;            // number of vsegs mapped in all vspaces
    146147    unsigned int vspaces;            // number of virtual spaces
    147     unsigned int increment;          // vseg cluster increment for replicated periphs
     148    unsigned int x_io;               // x coordinate for cluster_io_ext
     149    unsigned int y_io;               // y coordinate for cluster_io_ext
    148150    unsigned int irq_per_proc;       // number of IRQ per processor
    149 
    150     unsigned int cma_cluster;        // index of cluster containing CMA controler
    151     unsigned int cma_cluster_bis;    // index of cluster containing second CMA controler
    152 
    153     unsigned int fbf_cluster;        // index of cluster containing FBF controler
    154     unsigned int fbf_cluster_bis;    // index of cluster containing second FBF controler
    155 
    156     unsigned int iob_cluster;        // index of cluster containing IOB controler
    157     unsigned int iob_cluster_bis;    // index of cluster containing second IOB controler
    158 
    159     unsigned int ioc_cluster;        // index of cluster containing IOC controler
    160     unsigned int ioc_cluster_bis;    // index of cluster containing second IOC controler
    161 
    162     unsigned int nic_cluster;        // index of cluster containing NIC controler
    163     unsigned int nic_cluster_bis;    // index of cluster containing second NIC controler
    164 
    165     unsigned int rom_cluster;        // index of cluster containing ROM controler
    166     unsigned int rom_cluster_bis;    // index of cluster containing second ROM controler
    167 
    168     unsigned int sim_cluster;        // index of cluster containing SIM controler
    169     unsigned int sim_cluster_bis;    // index of cluster containing second SIM controler
    170 
    171     unsigned int tty_cluster;        // index of cluster containing TTY controler
    172     unsigned int tty_cluster_bis;    // index of cluster containing second TTY controler
     151    unsigned int use_ramdisk;        // does not use IOC peripheral if non zero
     152    unsigned int increment;          // vbase address increment (replicated peripherals)
    173153
    174154    unsigned int psegs;              // total number of physical segments (for all clusters)
     
    286266typedef struct __attribute__((packed))  mapping_proc_s
    287267{
    288     unsigned int    irqs;            // number of IRQs allocated to processor
    289     unsigned int    irq_offset;      // index of first IRQ allocated to processor
     268    unsigned int    index;           // processor local index (in cluster)
    290269} mapping_proc_t;
    291 
    292 
    293 /////////////////////////////////////////////////////
    294 typedef struct __attribute__((packed))  mapping_irq_s
    295 {
    296     unsigned int    type;            // HWI / SWI / PTI
    297     unsigned int    icuid;           // IRQ Index for the ICU component
    298     unsigned int    isr;             // ISR Index (defined in irq_handler.h)
    299     unsigned int    channel;         // Channel Index (for multi-channels peripherals)
    300 } mapping_irq_t;
    301270
    302271
     
    323292typedef struct __attribute__((packed))  mapping_periph_s
    324293{
    325     unsigned int    type;         
     294    unsigned int    type;            // legal values defined above
    326295    unsigned int    subtype;         // periph specialization
    327296    unsigned int    psegid;          // pseg index in cluster
    328297    unsigned int    channels;        // number of channels
     298    unsigned int    irqs;            // number of input IRQs (for ICU, XCU or PIC)
     299    unsigned int    irq_offset;      // index of first IRQ (can be HWI/PTI/WTI)
    329300} mapping_periph_t;
     301
     302
     303/////////////////////////////////////////////////////
     304typedef struct __attribute__((packed))  mapping_irq_s
     305{
     306    unsigned int    srctype;         // source IRQ type (HWI / WTI / PTI)
     307    unsigned int    srcid;           // source IRQ index (for ICU/PIC component)
     308    unsigned int    isr;             // ISR type (defined in irq_handler.h)
     309    unsigned int    channel;         // channel index (for multi-channels peripherals)
     310    unsigned int    dstx;            // x coordinate of destination cluster
     311    unsigned int    dsty;            // y coordinate of destination cluster
     312    unsigned int    dstid;           // destination IRQ index (can be PROC or ICU)
     313} mapping_irq_t;
    330314
    331315
Note: See TracChangeset for help on using the changeset viewer.