Ignore:
Timestamp:
Aug 14, 2013, 11:19:29 PM (11 years ago)
Author:
alain
Message:

1/ introducing support to display images on the frame buffer
with the vci_chbuf_dma (in stdio.c and drivers.c)
2/ introducing support for mem_cache configuration segment
as the memory cache is considered as another addressable peripheral type
(in drivers.c)
3/ Introducing the new "increment" parameter in the mapping header.
This parameter define the virtual address increment for the vsegs
associated to the replicated peripherals (ICU, XICU, MDMA, TIMER, MMC).
This parameter is mandatory, and all map.xml files the "mappings"
directory have been updated.

File:
1 edited

Legend:

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

    r249 r253  
    55// Copyright (c) UPMC-LIP6
    66////////////////////////////////////////////////////////////////////////////
    7 // The MAPPING_INFO data structure can be used with the GIET.
    8 // It contains the mapping directive for one or several virtual spaces.
    9 // Ech virtual space contains a variable number of virtual segments
     7// The MAPPING_INFO data structure, used by the GIET_VM kernel contains:
     8//
     9// 1) a description of a clusterized hardware architecture.
     10// The number of cluster is variable (can be one). The number of processors
     11// per cluster is variable (can be one). The number of peripherals per cluser
     12// and coprocessor per cluster is variable. The number of physical memory
     13// banks per cluster is variable.
     14//
     15// 2/ a description of the applications (called vspaces) to be - statically -
     16// launched on the platform. The number of parallel tasks per application is
     17// variable (can be one). Multi-Writer/Multi-Reader communication channels
     18// betwwen tasks are supported. Each vspace contains a variable number
     19// of virtual segments (called vsegs).
     20//
     21// 3/ the mapping directives: both tasks on processors, and software objects
     22// (vobjs and vsegs) on the physical memory banks (called psegs).
    1023// and a variable number of tasks. The number of virtual space can be one.
    1124//
    12 // The mapping table data structure is organised as the concatenation of
    13 // a fixed size header, and 6 variable size arrays:
     25// The mapping_info data structure is organised as the concatenation of
     26// a fixed size header, and 11 variable size arrays:
    1427//
    1528// - mapping_cluster_t  cluster[] 
     
    1932// - mapping_vseg_t     vobj[]   
    2033// - mapping_task_t     task[] 
    21 // - mapping_irq_t      irq[irqs]   
     34// - mapping_proc_t     proc[] 
     35// - mapping_irq_t      irq[]   
    2236// - mapping_coproc_t   coproc[]
    2337// - mapping_cp_port_t  cp_port[]
    2438// - mapping_periph_t   periph[]
    2539//
    26 // It is intended to be stored in the boot ROM at address MAPPING_BOOT_BASE.
     40// It is intended to be stored in memory at address MAPPING_BOOT_BASE.
    2741////////////////////////////////////////////////////////////////////////////
    2842
     
    7589};
    7690
     91// The enum definitions for psegType and periphType must be kept
     92// consistent with the definitions in the xml_driver.c file...
    7793
    7894enum periphType
     
    8298    PERIPH_TYPE_DMA       = 2,
    8399    PERIPH_TYPE_MMC       = 3,
    84 
    85100    PERIPH_TYPE_CMA       = 4,
    86101    PERIPH_TYPE_IOC       = 5,
     
    90105    PERIPH_TYPE_IOB       = 9,
    91106    PERIPH_TYPE_GCD       = 10,
    92 
    93     PERIPH_TYPE_MAX_VALUE = 11,
     107    PERIPH_TYPE_XCU       = 11,
     108
     109    PERIPH_TYPE_MAX_VALUE = 12,
    94110};
    95111
     
    112128    unsigned int globals;            // number of vsegs mapped in all vspaces
    113129    unsigned int vspaces;            // number of virtual spaces
     130    unsigned int increment;          // vseg cluster increment for replicated periphs
    114131
    115132    unsigned int tty_cluster;        // index of cluster containing TTY controler
     
    270287typedef struct __attribute__((packed))  mapping_periph_s
    271288{
    272     unsigned int type;           // IOC / TTY / TIM / DMA / FBF / NIC / IOB
     289    unsigned int type;         
    273290    unsigned int psegid;         // pseg index in cluster
    274291    unsigned int channels;       // number of channels
Note: See TracChangeset for help on using the changeset viewer.