Changeset 577
- Timestamp:
- May 21, 2015, 3:04:21 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_drivers/hba_driver.h
r545 r577 17 17 // 18 18 // 3. The "command list" can contain up to 32 independant commands, posted 19 // by different user tasks. These independant transfers are handled 20 // by the HBA device in the same order as they have been written by the 21 // driver(s) in the command list. There is no global lock protecting the 22 // the HBA device, but the command list being a shared structure, the driver 23 // must use an atomic_increment() to get a slot in the command list, 24 // and increment the write pointer. 19 // by different user tasks. These independant transfers are handled by 20 // the HBA device. The command list being a shared structure, the driver 21 // must use a lock to get a slot in the command list (except in boot mode 22 // when only one processor uses the HBA device). This slot is then 23 // allocated to the task until the command is completed. 25 24 // 26 25 // 4. This driver implements two operating mode: … … 35 34 // that is statically routed to processor P[x_io,y_io,0] in cluster_io. 36 35 // The associated global HBA_ISR send a WAKUP WTI to all tasks that have 37 // a completed command. This HBA_ISR uses a read pointer on the command 38 // to identify the first expected command completion. The incrementation 39 // of this read pointer does not require atomic_increment as there is 40 // no concurrent access for this pointer. 36 // a completed active command. In order to know which commands expect 37 // completion, the HBA_ISR uses the _hba_active_cmd table which indicates 38 // currently active commands (in descheduling mode only). 41 39 // 42 40 // The SEG_IOC_BASE virtual address must be defined in the hard_config.h file.
Note: See TracChangeset
for help on using the changeset viewer.