Changeset 4 for trunk/kernel/drivers/soclib/soclib_xcu.h
- Timestamp:
- Apr 26, 2017, 2:10:21 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/drivers/soclib/soclib_xcu.h
r1 r4 26 26 27 27 #include <hal_types.h> 28 #include < device.h>28 #include <chdev.h> 29 29 30 30 /****************************************************************************************** … … 52 52 53 53 /****************************************************************************************** 54 * This function initialises the local XCU devicemasks registers for a given54 * This function initialises the local XCU masks registers for a given 55 55 * core identified by its local index. 56 56 ****************************************************************************************** 57 * @ icu : pointer on the local ICU device descriptor58 * @ lid : core local index 57 * @ icu : pointer on the local ICU chdev descriptor. 58 * @ lid : core local index. 59 59 *****************************************************************************************/ 60 void soclib_xcu_init( device_t * icu,61 lid_t 60 void soclib_xcu_init( chdev_t * icu, 61 lid_t lid ); 62 62 63 63 /****************************************************************************************** 64 * This function set bits in a remoteXCU mask register for a given IRQ type,65 * and a given core. As it uses remote accesses, it can be callet in any cluster.64 * This function set bits in the local XCU mask register for a given IRQ type, 65 * and a given core. It must be called by a local thread. 66 66 * Only the bits with "1" value in mask argument are set, other bits are not modified. 67 67 * All input IRQs of requested types corresponding to "1" bits in mask are enabled. 68 68 ****************************************************************************************** 69 * @ icu _xp : extended pointer on the remote XCU device descriptor.70 * @ mask 71 * @ type 72 * @ lid 69 * @ icu : pointer on local XCU chdev descriptor 70 * @ mask : mask value 71 * @ type : HWI_TYPE / PTI_TYPE / WTI_TYPE 72 * @ lid : local core index == output IRQ index 73 73 *****************************************************************************************/ 74 void soclib_xcu_enable_irq( xptr_t icu_xp,74 void soclib_xcu_enable_irq( chdev_t * icu, 75 75 uint32_t mask, 76 76 uint32_t type, … … 78 78 79 79 /****************************************************************************************** 80 * This function clear bits in a remoteXCU mask register for a given IRQ type,81 * and a given core. As it uses remote accesses, it can be callet in any cluster.80 * This function clear bits in the local XCU mask register for a given IRQ type, 81 * and a given core. It must be called by a local thread. 82 82 * Only the bits with "1" value in mask argument are cleared, other bits are not modified. 83 83 * All input IRQs of requested types corresponding to "1" bits in mask are disabled. 84 84 ****************************************************************************************** 85 * @ icu _xp : extended pointer on the remote XCU device descriptor.86 * @ mask 87 * @ type 88 * @ lid 85 * @ icu : pointer on local XCU chdev descriptor 86 * @ mask : mask value 87 * @ type : HWI_TYPE / PTI_TYPE / WTI_TYPE 88 * @ lid : local core index == output IRQ index 89 89 *****************************************************************************************/ 90 void soclib_xcu_disable_irq( xptr_t icu_xp,90 void soclib_xcu_disable_irq( chdev_t * icu, 91 91 uint32_t mask, 92 92 uint32_t type, … … 96 96 * This function set the period value for a local XCU timer. 97 97 ****************************************************************************************** 98 * @ icu : pointer on the local ICU devicedescriptor98 * @ icu : pointer on the local XCU chdev descriptor 99 99 * @ index : timer index = PTI index 100 100 * @ period : Value to be written 101 101 *****************************************************************************************/ 102 void soclib_xcu_set_period( device_t* icu,102 void soclib_xcu_set_period( chdev_t * icu, 103 103 uint32_t index, 104 104 uint32_t period ); … … 107 107 * This function acknowledge a PTI IRQ for a local XCU timer. 108 108 ****************************************************************************************** 109 * @ icu : pointer on the local ICU devicedescriptor109 * @ icu : pointer on the local XCU chdev descriptor 110 110 * @ index : timer index = PTI index 111 111 * @ the returned value in not significant, but acknowledge requires a read. 112 112 *****************************************************************************************/ 113 uint32_t soclib_xcu_ack_timer( device_t* icu,113 uint32_t soclib_xcu_ack_timer( chdev_t * icu, 114 114 uint32_t index ); 115 115 … … 118 118 * If no active interrupt => status == 0 / else => status = index + 1 119 119 ****************************************************************************************** 120 * @ icu : pointer on the local ICU device descriptor.120 * @ icu : pointer on the local XCU chdev descriptor 121 121 * @ lid : core local index. 122 122 * @ hwi_status : buffer for returned HWI status … … 124 124 * @ pti_status : buffer for returned PTI status 125 125 *****************************************************************************************/ 126 void soclib_xcu_get_status( device_t* icu,126 void soclib_xcu_get_status( chdev_t * icu, 127 127 lid_t lid, 128 128 uint32_t * hwi_status, … … 144 144 * This function does not access the SOCLIB_XCU hardware device. 145 145 ****************************************************************************************** 146 * @ icu : pointer on the local ICU device descriptor.146 * @ icu : pointer on the local XCU chdev descriptor 147 147 * @ index : WTI mailbox index. 148 148 *****************************************************************************************/ 149 uint32_t * soclib_xcu_wti_ptr( device_t* icu,149 uint32_t * soclib_xcu_wti_ptr( chdev_t * icu, 150 150 uint32_t index ); 151 151
Note: See TracChangeset
for help on using the changeset viewer.