Changeset 340


Ignore:
Timestamp:
Jun 24, 2014, 11:11:29 AM (10 years ago)
Author:
cfuguet
Message:

giet_vm/iob_driver:

  • The XICU_BASE and XICU_SIZE registers do not exist anymore in the VCI_IO_BRIDGE component. The routing of WTI commands by the IOB is done statically by using the special attribute on the IOX segments.
Location:
soft/giet_vm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_boot/boot.c

    r329 r340  
    142142// Page table addresses arrays
    143143__attribute__((section (".bootdata")))
    144 paddr_t      _ptabs_paddr[GIET_NB_VSPACE_MAX];
     144volatile paddr_t      _ptabs_paddr[GIET_NB_VSPACE_MAX];
    145145
    146146__attribute__((section (".bootdata")))
    147 unsigned int _ptabs_vaddr[GIET_NB_VSPACE_MAX];
     147volatile unsigned int _ptabs_vaddr[GIET_NB_VSPACE_MAX];
    148148
    149149// Next free PT2 index array
    150150__attribute__((section (".bootdata")))
    151 unsigned int _next_free_pt2[GIET_NB_VSPACE_MAX] =
     151volatile unsigned int _next_free_pt2[GIET_NB_VSPACE_MAX] =
    152152{ [0 ... GIET_NB_VSPACE_MAX - 1] = 0 };
    153153
    154154// Max PT2 index
    155155__attribute__((section (".bootdata")))
    156 unsigned int _max_pt2[GIET_NB_VSPACE_MAX] =
     156volatile unsigned int _max_pt2[GIET_NB_VSPACE_MAX] =
    157157{ [0 ... GIET_NB_VSPACE_MAX - 1] = 0 };
    158158
     
    305305    unsigned int ix2;
    306306    paddr_t      pt1_pbase;     // PT1 physical base address
    307     paddr_t      pt2_pbase;    // PT2 physical base address
     307    paddr_t      pt2_pbase = 0; // PT2 physical base address
    308308    paddr_t      pte_paddr;     // PTE physucal address
    309309    unsigned int pt2_id;        // PT2 index
     
    22162216                case PERIPH_TYPE_IOB:    // vci_io_bridge component
    22172217                {
    2218                     // initialize r_xicu_base & r_xicu_size registers
    2219                     unsigned int base = (unsigned int)SEG_XCU_BASE;
    2220 
    22212218#if BOOT_DEBUG_PERI
    22222219_puts("- IOB : channels = ");
    22232220_putd(channels);
    2224 _puts(" / XICU_BASE = ");
    2225 _putx( base );
    2226 _puts(" / XICU_SIZE = ");
    2227 _putx( 0x1000 );
    2228 _puts("\n");
    2229 #endif
    2230                     _iob_set_xicu_base( cluster_xy, base );
    2231                     _iob_set_xicu_size( cluster_xy, 0x1000 );
    2232 
     2221_puts("\n");
     2222#endif
    22332223                    if (GIET_USE_IOMMU)
    22342224                    {
     
    23372327// Most of this code is executed by Processor 0 only.
    23382328/////////////////////////////////////////////////////////////////////////
    2339 void boot_init() 
     2329void boot_init()
    23402330{
    23412331    mapping_header_t*  header     = (mapping_header_t *)SEG_BOOT_MAPPING_BASE;
  • soft/giet_vm/giet_drivers/iob_driver.c

    r320 r340  
    8383}
    8484
    85 ///////////////////////////////////////////////////////////////////////////////
    86 // This function sets a new value in IOB_XICU_BASE register.
    87 ///////////////////////////////////////////////////////////////////////////////
    88 void _iob_set_xicu_base( unsigned int cluster_xy,
    89                          unsigned int value )
    90 {
    91     _iob_set_register( cluster_xy,
    92                        IOB_XICU_BASE,
    93                        value );
    94 }
    95 
    96 ///////////////////////////////////////////////////////////////////////////////
    97 // This function sets a new value in IOB_XICU_SIZE register.
    98 ///////////////////////////////////////////////////////////////////////////////
    99 void _iob_set_xicu_size( unsigned int cluster_xy,
    100                          unsigned int value )
    101 {
    102     _iob_set_register( cluster_xy,
    103                        IOB_XICU_SIZE,
    104                        value );
    105 }
    106 
    107 
    108 
    10985// Local Variables:
    11086// tab-width: 4
  • soft/giet_vm/giet_drivers/iob_driver.h

    r298 r340  
    2424    IOB_WTI_ADDR_LO      = 7,      // W/R : 32 LSB bits for IOMMU WTI
    2525    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
    2826};
    2927
     
    5149                                  unsigned int value );
    5250
    53 extern void _iob_set_xicu_base(   unsigned int cluster_xy,
    54                                   unsigned int value );
    55 
    56 extern void _iob_set_xicu_size(   unsigned int cluster_xy,
    57                                   unsigned int value );
    58 
    5951///////////////////////////////////////////////////////////////////////////////////
    6052
Note: See TracChangeset for help on using the changeset viewer.