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_drivers/xcu_driver.h

    r281 r295  
    55// Copyright (c) UPMC-LIP6
    66///////////////////////////////////////////////////////////////////////////////////
     7// The xcu_driver.c and xcu_driver.h files are part ot the GIET-VM nano-kernel.
     8// This driver supports the SoCLib vci_xicu, that is a vectorised interrupt
     9// controler supporting IPI (Inter Processor Interrupts) and integrated timers.
     10//
     11// It can exist several interrupt controller unit in the architecture
     12// (one per cluster), and each one can contain several channels.
     13// The number of XICU channels is equal to NB_PROCS_MAX, because there is
     14// one private XICU channel per processor in a cluster.
     15////////////////////////////////////////////////////////////////////////////////
     16// The virtual base address of the segment associated to the component is:
     17//
     18//      seg_xcu_base + cluster_xy * vseg_cluster_increment
     19//
     20// The seg_xcu_base and vseg_cluster_increment values must be defined
     21// in giet_vsegs.ld file.
     22////////////////////////////////////////////////////////////////////////////////
    723
    824#ifndef _GIET_XCU_DRIVER_H_
     
    4460///////////////////////////////////////////////////////////////////////////////////
    4561
    46 extern unsigned int _xcu_get_index( unsigned int cluster_xy,
    47                                     unsigned int irq_index,
    48                                     unsigned int * buffer );
     62extern void _xcu_set_mask( unsigned int cluster_xy,
     63                           unsigned int channel, 
     64                           unsigned int mask,
     65                           unsigned int irq_type );
    4966
    50 extern unsigned int _xcu_set_mask( unsigned int cluster_xy,
    51                                    unsigned int irq_index,
    52                                    unsigned int mask,
    53                                    unsigned int is_timer );
     67extern void _xcu_get_index( unsigned int   cluster_xy,
     68                            unsigned int   channel,   
     69                            unsigned int * index,
     70                            unsigned int * irq_type );
    5471
    55 extern unsigned int _xcu_send_ipi( unsigned int cluster_xy,
    56                                    unsigned int wti_index,
    57                                    unsigned int wdata );
     72extern void _xcu_send_wti( unsigned int cluster_xy,
     73                           unsigned int wti_index,
     74                           unsigned int wdata );
    5875
    59 extern unsigned int _xcu_timer_start( unsigned int cluster_xy,
    60                                       unsigned int pti_index,
    61                                       unsigned int period );
     76extern void _xcu_get_wti_value( unsigned int   cluster_xy,
     77                                unsigned int   wti_index,
     78                                unsigned int * value );
    6279
    63 extern unsigned int _xcu_timer_stop( unsigned int cluster_xy,
    64                                      unsigned int pti_index );
     80extern void _xcu_get_wti_address( unsigned int   wti_index,
     81                                  unsigned int * address );
    6582
    66 extern unsigned int _xcu_timer_reset_irq( unsigned int cluster_xy,
    67                                           unsigned int pti_index );
     83extern void _xcu_timer_start( unsigned int cluster_xy,
     84                              unsigned int pti_index,
     85                              unsigned int period );
    6886
    69 extern unsigned int _xcu_timer_reset_cpt( unsigned int cluster_xy,
    70                                           unsigned int pti_index );
     87extern void _xcu_timer_stop( unsigned int cluster_xy,
     88                             unsigned int pti_index );
     89
     90extern void _xcu_timer_reset_irq( unsigned int cluster_xy,
     91                                  unsigned int pti_index );
     92
     93extern void _xcu_timer_reset_cpt( unsigned int cluster_xy,
     94                                  unsigned int pti_index );
    7195
    7296///////////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.