Changeset 356


Ignore:
Timestamp:
Jul 3, 2014, 4:50:55 PM (10 years ago)
Author:
alain
Message:

Bloup...

Location:
soft/giet_vm
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/Makefile

    r345 r356  
    116116CONVOL_OBJS  = build/convol/main.o   \
    117117               build/libs/stdio.o    \
     118               build/libs/stdlib.o    \
    118119               build/libs/barrier.o
    119120
    120 CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32 -O2
     121                           CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32 -g
    121122
    122123GIET_INCLUDE = -Igiet_boot    \
  • soft/giet_vm/giet_boot/boot.c

    r347 r356  
    25242524    }  // end monoprocessor boot
    25252525
    2526     // reset BEV bit in the status register to use GIET exception
    2527     // handler instead of the PRELOADER exception handler
     2526    ///////////////////////////////////////////////////////////////////////////////
     2527    //            Parallel execution starts actually here
     2528    ///////////////////////////////////////////////////////////////////////////////
     2529
     2530    // all processors reset BEV bit in the status register to use
     2531    // the GIET_VM exception handler instead of the PRELOADER exception handler
    25282532    _set_sr( 0 );
    25292533
    2530     // all processor initialise SCHED register
     2534    // all processor initialise the SCHED register
     2535    // from the _schedulers[x][y][lpid array]
    25312536    unsigned int cluster_xy = gpid / NB_PROCS_MAX;
    25322537    unsigned int lpid       = gpid % NB_PROCS_MAX;
     
    25422547    }
    25432548
    2544     // all processors jump to kernel_init (address defined in giet_vsegs.ld)
     2549    // all processors jump to kernel_init
     2550    // using the address defined in the giet_vsegs.ld file
    25452551    unsigned int kernel_entry = (unsigned int)&kernel_init_vbase;
    25462552    asm volatile( "jr   %0" ::"r"(kernel_entry) );
  • soft/giet_vm/giet_libs/stdlib.h

    r271 r356  
    1818
    1919////////////////////////////////////////////////////////////////////////////////////////
    20 //  mempcy()
     20//  memset()
    2121// GCC requires this function. Taken from MutekH.
    2222////////////////////////////////////////////////////////////////////////////////////////
    2323inline void * memset(void * dst, int s, unsigned int count);
     24
    2425#endif
    2526
  • soft/giet_vm/giet_python/mapping.py

    r348 r356  
    144144                  y_io = 0,                      # cluster_io y coordinate
    145145                  peri_increment = 0x10000,      # address increment for globals
    146                   reset_address = 0xBFC00000 ):  # Processor wired boot_address
     146                  reset_address  = 0xBFC00000,   # Processor wired boot_address
     147                  ram_base       = 0,            # RAM physical base address in cluster[0,0]
     148                  ram_size       = 0 ):          # RAM size in each cluster (bytes)
    147149
    148150        self.signature      = 0xDACE2014
     
    161163        self.peri_increment = peri_increment
    162164        self.reset_address  = reset_address
     165        self.ram_base       = ram_base
     166        self.ram_size       = ram_size
     167
    163168
    164169        self.total_vspaces  = 0
     
    193198       
    194199        # check coordinates (obtained from the base address)
    195         cluster_xy = base >> (self.paddr_width - self.x_width - self.y_width)
     200        paddr_lsb_width = self.paddr_width - self.x_width - self.y_width
     201        cluster_xy = base >> paddr_lsb_width
    196202        x = cluster_xy >> (self.y_width);
    197203        y = cluster_xy & ((1 << self.y_width) - 1)
     
    201207        assert (x < self.x_size) and (y < self.y_size)
    202208       
     209        assert ( (base & ((1<<paddr_lsb_width)-1)) == self.ram_base )
     210
     211        assert ( size == self.ram_size )
     212
    203213        cluster_id = (x * self.y_size) + y
    204214
     
    11181128        s += '\n'
    11191129
    1120         s += '/* physical base addresses for peripherals */\n'
     1130        s += '/* base addresses and sizes for physical segments */\n'
     1131        s += '\n'
     1132        s += '#define SEG_RAM_BASE           0x%x\n'  % self.ram_base           
     1133        s += '#define SEG_RAM_SIZE           0x%x\n'  % self.ram_size           
    11211134        s += '\n'
    11221135        s += '#define SEG_CMA_BASE           0x%x\n'  % seg_cma_base           
Note: See TracChangeset for help on using the changeset viewer.