Changeset 557
- Timestamp:
- Sep 21, 2018, 10:26:00 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/boot/tsar_mips32/Makefile
r547 r557 39 39 -I$(HAL_ARCH)/core \ 40 40 -I../.. \ 41 -I$(KERNEL) 41 -I$(KERNEL) \ 42 -I$(KERNEL)/kern 42 43 43 44 # Rule to generate boot.elf, kernel.elf, ksh.elf, sort.elf and update virtual disk. -
trunk/boot/tsar_mips32/boot.c
r556 r557 78 78 #include <boot_info.h> 79 79 80 #include <cluster_info.h> 81 80 82 #include <boot_utils.h> 81 83 #include <boot_fat32.h> … … 140 142 case DEV_TYPE_TIM_SCL: return "TIM_SCL"; 141 143 case DEV_TYPE_TXT_TTY: return "TXT_TTY"; 144 case DEV_TYPE_TXT_MTY: return "TXT_MTY"; 142 145 case DEV_TYPE_ICU_XCU: return "ICU_XCU"; 143 146 case DEV_TYPE_PIC_TSR: return "PIC_TSR"; … … 415 418 boot_info->kentry_size = seg_kentry_size; 416 419 420 /* Initialize all clusters as empty for now */ 421 int x, y; 422 for ( x = 0; x < CONFIG_MAX_CLUSTERS_X; x++) 423 { 424 for ( x = 0; x < CONFIG_MAX_CLUSTERS_X; x++) 425 { 426 boot_info->cluster_info[x][y] = 0x0; 427 } 428 } 429 417 430 // loop on arch_info clusters to get relevant pointers 418 431 for (cluster = cluster_base; … … 420 433 cluster++) 421 434 { 435 int x = cluster->cxy >> Y_WIDTH; 436 int y = cluster->cxy & ((1 << Y_WIDTH) - 1); 437 422 438 if( cluster->cxy == cxy ) my_cluster = cluster; 423 if( cluster->cxy == header->io_cxy ) io_cluster = cluster; 439 if( cluster->cxy == header->io_cxy ) { 440 io_cluster = cluster; 441 boot_info->cluster_info[x][y] |= CINFO_IS_IO; 442 } 443 if ( cluster->cores > 0 ) { 444 boot_info->cluster_info[x][y] |= CINFO_ACTIVE; 445 } 424 446 } 425 447 -
trunk/kernel/Makefile
r543 r557 89 89 build/kern/dqdt.o \ 90 90 build/kern/do_syscall.o \ 91 build/kern/rpc.o 91 build/kern/rpc.o \ 92 build/kern/cluster_info.o 92 93 93 94 DEV_OBJS = build/devices/dev_txt.o \ -
trunk/kernel/kern/cluster.c
r530 r557 75 75 cluster->io_cxy = info->io_cxy; 76 76 77 // initialize the cluster_info[][] array 78 int x; 79 int y; 80 for (x = 0; x < CONFIG_MAX_CLUSTERS_X; x++) { 81 for (y = 0; y < CONFIG_MAX_CLUSTERS_Y;y++) { 82 cluster->cluster_info[x][y] = info->cluster_info[x][y]; 83 } 84 } 77 85 // initialize external peripherals channels 78 86 for( i = 0 ; i < info->ext_dev_nr ; i++ ) -
trunk/kernel/kern/cluster.h
r530 r557 107 107 uint32_t x_max; // [FIXME] 108 108 uint32_t y_max; // [FIXME] 109 uint32_t cluster_info[CONFIG_MAX_CLUSTERS_X][CONFIG_MAX_CLUSTERS_Y]; 109 110 cxy_t io_cxy; /*! io cluster identifier */ 110 111 uint32_t dqdt_root_level; /*! index of root node in dqdt_tbl[] */ -
trunk/kernel/kernel_config.h
r544 r557 192 192 193 193 #define CONFIG_KERNEL_IDENTITY_MAP true // True for 32 bits cores 194 #define CONFIG_MAX_CLUSTERS 256 // max number of clusters 194 #define CONFIG_MAX_CLUSTERS_X 16 // max number of cluster columns 195 #define CONFIG_MAX_CLUSTERS_Y 16 // max number of cluster rows 196 #define CONFIG_MAX_CLUSTERS (CONFIG_MAX_CLUSTERS_X * CONFIG_MAX_CLUSTERS_Y) 195 197 #define CONFIG_MAX_LOCAL_CORES 4 // max number of cores per cluster 196 198 #define CONFIG_MAX_INT_DEV 4 // max number of internal peripherals -
trunk/tools/arch_info/boot_info.h
r556 r557 114 114 uint32_t x_max; /*! [FIXME] Nb of non-empty cluster in row */ 115 115 uint32_t y_max; /*! [FIXME] Nb of non_empty cluster in col */ 116 uint32_t cluster_info[CONFIG_MAX_CLUSTERS_X][CONFIG_MAX_CLUSTERS_Y]; 117 /*! An array of infos about all clusters */ 116 118 uint32_t io_cxy; /*! IO cluster identifier */ 117 119
Note: See TracChangeset
for help on using the changeset viewer.