Changeset 295 for soft/giet_vm/giet_drivers/xcu_driver.h
- Timestamp:
- Mar 26, 2014, 6:44:44 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_drivers/xcu_driver.h
r281 r295 5 5 // Copyright (c) UPMC-LIP6 6 6 /////////////////////////////////////////////////////////////////////////////////// 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 //////////////////////////////////////////////////////////////////////////////// 7 23 8 24 #ifndef _GIET_XCU_DRIVER_H_ … … 44 60 /////////////////////////////////////////////////////////////////////////////////// 45 61 46 extern unsigned int _xcu_get_index( unsigned int cluster_xy, 47 unsigned int irq_index, 48 unsigned int * buffer ); 62 extern void _xcu_set_mask( unsigned int cluster_xy, 63 unsigned int channel, 64 unsigned int mask, 65 unsigned int irq_type ); 49 66 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);67 extern void _xcu_get_index( unsigned int cluster_xy, 68 unsigned int channel, 69 unsigned int * index, 70 unsigned int * irq_type ); 54 71 55 extern unsigned int _xcu_send_ipi( unsigned int cluster_xy,56 57 72 extern void _xcu_send_wti( unsigned int cluster_xy, 73 unsigned int wti_index, 74 unsigned int wdata ); 58 75 59 extern unsigned int _xcu_timer_start( unsigned int cluster_xy,60 unsigned int pti_index,61 unsigned int period );76 extern void _xcu_get_wti_value( unsigned int cluster_xy, 77 unsigned int wti_index, 78 unsigned int * value ); 62 79 63 extern unsigned int _xcu_timer_stop( unsigned int cluster_xy,64 unsigned int pti_index );80 extern void _xcu_get_wti_address( unsigned int wti_index, 81 unsigned int * address ); 65 82 66 extern unsigned int _xcu_timer_reset_irq( unsigned int cluster_xy, 67 unsigned int pti_index ); 83 extern void _xcu_timer_start( unsigned int cluster_xy, 84 unsigned int pti_index, 85 unsigned int period ); 68 86 69 extern unsigned int _xcu_timer_reset_cpt( unsigned int cluster_xy, 70 unsigned int pti_index ); 87 extern void _xcu_timer_stop( unsigned int cluster_xy, 88 unsigned int pti_index ); 89 90 extern void _xcu_timer_reset_irq( unsigned int cluster_xy, 91 unsigned int pti_index ); 92 93 extern void _xcu_timer_reset_cpt( unsigned int cluster_xy, 94 unsigned int pti_index ); 71 95 72 96 ///////////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.