source: soft/giet_vm/giet_drivers/ioc_driver.h @ 313

Last change on this file since 313 was 295, checked in by alain, 10 years ago

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 size: 2.3 KB
Line 
1///////////////////////////////////////////////////////////////////////////////////
2// File     : ioc_driver.h
3// Date     : 01/11/2013
4// Author   : alain greiner
5// Copyright (c) UPMC-LIP6
6///////////////////////////////////////////////////////////////////////////////////
7
8#ifndef _GIET_IOC_DRIVER_H_
9#define _GIET_IOC_DRIVER_H_
10
11///////////////////////////////////////////////////////////////////////////////////
12// IOC (vci_block device) registers offsets
13///////////////////////////////////////////////////////////////////////////////////
14
15enum IOC_driver_modes
16{
17    IOC_BOOT_MODE   = 0,     //  Polling IOC_STATUS / no access right checking
18    IOC_KERNEL_MODE = 1,     //  Descheduling + IRQ / no access right checking
19    IOC_USER_MODE   = 2,     //  Descheduling + IRQ / access right checking
20};
21
22///////////////////////////////////////////////////////////////////////////////////
23// IOC global variables (generic disk controller)
24///////////////////////////////////////////////////////////////////////////////////
25
26extern volatile unsigned int _ioc_iommu_ix1;
27extern volatile unsigned int _ioc_iommu_npages; 
28
29///////////////////////////////////////////////////////////////////////////////////
30// IOC access functions  (generic disk controller)
31///////////////////////////////////////////////////////////////////////////////////
32
33extern unsigned int _ioc_init( unsigned int channel );
34
35extern unsigned int _ioc_write( unsigned int channel,
36                                unsigned int mode,
37                                unsigned int lba, 
38                                const void*  buffer, 
39                                unsigned int count );
40
41extern unsigned int _ioc_read(  unsigned int channel,
42                                unsigned int mode,
43                                unsigned int lba, 
44                                void*        buffer,
45                                unsigned int count );
46
47extern unsigned int _ioc_get_status( unsigned int channel );
48
49extern unsigned int _ioc_get_block_size();
50
51///////////////////////////////////////////////////////////////////////////////////
52
53
54#endif
55
56// Local Variables:
57// tab-width: 4
58// c-basic-offset: 4
59// c-file-offsets:((innamespace . 0)(inline-open . 0))
60// indent-tabs-mode: nil
61// End:
62// vim: filetype=c:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
63
Note: See TracBrowser for help on using the repository browser.