Ignore:
Timestamp:
Apr 3, 2014, 2:00:10 PM (10 years ago)
Author:
alain
Message:

Introducing pic driver and rdk driver

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_drivers/iob_driver.h

    r258 r298  
    1010
    1111///////////////////////////////////////////////////////////////////////////////////
    12 // TSAR IOB (vci_io_bridge) registers offsets
     12// vci_io_bridge : registers offsets and iommu error codes
    1313///////////////////////////////////////////////////////////////////////////////////
    1414
    1515enum IOB_registers
    1616{
    17     IOB_IOMMU_PTPR       = 0, /* R/W : Page Table Pointer Register */
    18     IOB_IOMMU_ACTIVE     = 1, /* R/W : IOMMU activated if not 0 */
    19     IOB_IOMMU_BVAR       = 2, /* R   : Bad Virtual Address (unmapped) */
    20     IOB_IOMMU_ETR        = 3, /* R   : Error Type */
    21     IOB_IOMMU_BAD_ID     = 4, /* R   : Faulty Peripheral Index */
    22     IOB_INVAL_PTE        = 5, /* W   : Invalidate a PTE (virtual address) */
    23     IOB_IT_ADDR_IOMMU_LO = 6, /* W/R : 32 LSB bits for IOMMU IT*/
    24     IOB_IT_ADDR_IOMMU_HI = 7, /* W/R : 32 MSB bits for IOMMU IT */
    25     IOB_IT_ADDRESS_BEGIN = 8, /* R/W : Peripheral IT address (2 32 bits registers) */
     17    IOB_IOMMU_PTPR       = 0,      // R/W : Page Table Pointer Register
     18    IOB_IOMMU_ACTIVE     = 1,      // R/W : IOMMU activated if not 0
     19    IOB_IOMMU_BVAR       = 2,      // R   : Bad Virtual Address (unmapped)
     20    IOB_IOMMU_ETR        = 3,      // R   : Error Type
     21    IOB_IOMMU_BAD_ID     = 4,      // R   : Faulty Peripheral Index (SRCID)
     22    IOB_INVAL_PTE        = 5,      // W   : Invalidate a PTE (virtual address)
     23    IOB_WTI_ENABLE       = 6,      // R/W : Enable WTIs (both IOMMU and peripherals)
     24    IOB_WTI_ADDR_LO      = 7,      // W/R : 32 LSB bits for IOMMU WTI
     25    IOB_WTI_ADDR_HI      = 8,      // W/R : 32 MSB bits for IOMMU WTI
     26    IOB_XICU_BASE        = 9,      // R/W : XICU pbase address in cluster 0
     27    IOB_XICU_SIZE        = 10,     // R/W : XICU segment size
    2628};
     29
     30enum mmu_error_type_e
     31{
     32    MMU_NONE                      = 0x0000, // None
     33    MMU_WRITE_ACCES_VIOLATION     = 0x0008, // Write access to a non writable page
     34    MMU_WRITE_PT1_ILLEGAL_ACCESS  = 0x0040, // Write Bus Error accessing Table 1       
     35    MMU_READ_PT1_UNMAPPED             = 0x1001, // Read  Page fault on Page Table 1     
     36    MMU_READ_PT2_UNMAPPED             = 0x1002, // Read  Page fault on Page Table 2 
     37    MMU_READ_PT1_ILLEGAL_ACCESS   = 0x1040, // Read  Bus Error in Table1 access     
     38    MMU_READ_PT2_ILLEGAL_ACCESS   = 0x1080, // Read  Bus Error in Table2 access         
     39    MMU_READ_DATA_ILLEGAL_ACCESS  = 0x1100, // Read  Bus Error in cache access
     40};
     41
    2742
    2843///////////////////////////////////////////////////////////////////////////////////
     
    3045///////////////////////////////////////////////////////////////////////////////////
    3146
    32 extern unsigned int _iob_inval_tlb_entry( unsigned int vaddr );
     47extern void _iob_inval_tlb_entry( unsigned int cluster_xy,
     48                                  unsigned int vaddr );
    3349
    34 extern unsigned int _iob_set_iommu_ptpr( unsigned int value );
     50extern void _iob_set_iommu_ptpr(  unsigned int cluster_xy,
     51                                  unsigned int value );
     52
     53extern void _iob_set_xicu_base(   unsigned int cluster_xy,
     54                                  unsigned int value );
     55
     56extern void _iob_set_xicu_size(   unsigned int cluster_xy,
     57                                  unsigned int value );
    3558
    3659///////////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.