Ignore:
Timestamp:
Jun 3, 2013, 5:28:47 PM (11 years ago)
Author:
joannou
Message:

Bug fix for scheduler handling :

  • In boot_init.c, changed left shifts of 10 to left shifts of 12 to support 4K schedulers instead of 1K schedulers
  • In common.c, updated _get_sched() function to return the content of CP0_SCHED register
File:
1 edited

Legend:

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

    r238 r240  
    15211521        boot_get_sched_vaddr( cluster_id, &sched_vbase, &sched_length );
    15221522
    1523         // each processor scheduler requires 1 Kbytes
    1524         if ( sched_length < (nprocs<<10) )
     1523        // each processor scheduler requires 4 Kbytes
     1524        if ( sched_length < (nprocs<<12) )
    15251525        {
    15261526            boot_puts("\n[BOOT ERROR] Schedulers segment too small in cluster ");
     
    15361536            // set the schedulers pointers array
    15371537            boot_schedulers[cluster_id * NB_PROCS_MAX + lpid] =
    1538                (static_scheduler_t*)( sched_vbase + (lpid<<10) );
     1538               (static_scheduler_t*)( sched_vbase + (lpid<<12) );
    15391539
    15401540#if BOOT_DEBUG_SCHED
     
    15421542boot_putd(lpid);
    15431543boot_puts(" : scheduler virtual base address = ");
    1544 boot_putx( sched_vbase + (lpid<<10) );
     1544boot_putx( sched_vbase + (lpid<<12) );
    15451545boot_puts("\n");
    15461546#endif
    15471547            // current processor scheduler pointer : psched
    1548             static_scheduler_t* psched = (static_scheduler_t*)(sched_vbase+(lpid<<10));
     1548            static_scheduler_t* psched = (static_scheduler_t*)(sched_vbase+(lpid<<12));
    15491549
    15501550            // initialise the "tasks" variable
Note: See TracChangeset for help on using the changeset viewer.