Changeset 647 for trunk/hal/tsar_mips32/core
- Timestamp:
- Oct 22, 2019, 1:48:51 PM (5 years ago)
- Location:
- trunk/hal/tsar_mips32/core
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/hal/tsar_mips32/core/hal_context.c
r640 r647 221 221 222 222 // get base and ppn of remote child process GPT PT1 223 child_gpt_ptr = hal_remote_l 32( XPTR(child_cxy , &child_process->vmm.gpt.ptr) );223 child_gpt_ptr = hal_remote_lpt( XPTR(child_cxy , &child_process->vmm.gpt.ptr) ); 224 224 child_gpt_ppn = ppm_base2ppn( XPTR( child_cxy , child_gpt_ptr ) ); 225 225 -
trunk/hal/tsar_mips32/core/hal_drivers.c
r570 r647 34 34 #include <soclib_nic.h> 35 35 #include <soclib_dma.h> 36 #include <soclib_fbf.h> 36 37 37 38 #include <dev_txt.h> … … 46 47 /////////////////////////////////////////////////////////////////////////////// 47 48 48 ////////////////////////////////////////// 49 void hal_drivers_txt_init( chdev_t * txt, 50 uint32_t impl ) 49 /////////////////////////////////////////// 50 void hal_drivers_txt_init( chdev_t * txt ) 51 51 { 52 uint32_t impl = txt->impl; 53 52 54 if( impl == IMPL_TXT_TTY ) 53 55 { … … 68 70 /////////////////////////////////////////////////////////////////////////////// 69 71 70 ////////////////////////////////////////// 71 void hal_drivers_pic_init( chdev_t * pic, 72 uint32_t impl ) 72 /////////////////////////////////////////// 73 void hal_drivers_pic_init( chdev_t * pic ) 73 74 { 75 uint32_t impl = pic->impl; 76 74 77 assert( (impl == IMPL_PIC_SCL), "undefined implementation" ); 75 78 … … 91 94 /////////////////////////////////////////////////////////////////////////////// 92 95 93 ////////////////////////////////////////// 94 void hal_drivers_iob_init( chdev_t * iob, 95 uint32_t impl ) 96 /////////////////////////////////////////// 97 void hal_drivers_iob_init( chdev_t * iob ) 96 98 { 99 uint32_t impl = iob->impl; 100 97 101 assert( (impl == IMPL_IOB_TSR), "undefined implementation" ); 98 102 … … 112 116 /////////////////////////////////////////////////////////////////////////////// 113 117 114 ////////////////////////////////////////// 115 void hal_drivers_ioc_init( chdev_t * ioc, 116 uint32_t impl ) 118 /////////////////////////////////////////// 119 void hal_drivers_ioc_init( chdev_t * ioc ) 117 120 { 121 uint32_t impl = ioc->impl; 122 118 123 if (impl == IMPL_IOC_BDV) 119 124 { … … 138 143 /////////////////////////////////////////////////////////////////////////////// 139 144 140 ////////////////////////////////////////// 141 void hal_drivers_mmc_init( chdev_t * mmc, 142 uint32_t impl ) 145 /////////////////////////////////////////// 146 void hal_drivers_mmc_init( chdev_t * mmc ) 143 147 { 148 uint32_t impl = mmc->impl; 149 144 150 assert( (impl == IMPL_MMC_TSR), "undefined implementation" ); 145 151 … … 151 157 /////////////////////////////////////////////////////////////////////////////// 152 158 153 ////////////////////////////////////////// 154 void hal_drivers_nic_init( chdev_t * nic, 155 uint32_t impl ) 159 /////////////////////////////////////////// 160 void hal_drivers_nic_init( chdev_t * nic ) 156 161 { 162 uint32_t impl = nic->impl; 163 157 164 assert( (impl == IMPL_NIC_CBF), "undefined implementation" ); 158 165 … … 164 171 /////////////////////////////////////////////////////////////////////////////// 165 172 166 ////////////////////////////////////////// 167 void hal_drivers_dma_init( chdev_t * dma, 168 uint32_t impl ) 173 /////////////////////////////////////////// 174 void hal_drivers_dma_init( chdev_t * dma ) 169 175 { 176 uint32_t impl = dma->impl; 177 170 178 assert( (impl == IMPL_DMA_SCL), "undefined implementation" ); 171 179 … … 173 181 } 174 182 183 /////////////////////////////////////////////////////////////////////////////// 184 // FBF 185 /////////////////////////////////////////////////////////////////////////////// 186 187 /////////////////////////////////////////// 188 void hal_drivers_fbf_init( chdev_t * fbf ) 189 { 190 uint32_t impl = fbf->impl; 191 192 assert( (impl == IMPL_FBF_SCL), "undefined implementation" ); 193 194 soclib_fbf_init( fbf ); 195 } 196 -
trunk/hal/tsar_mips32/core/hal_gpt.c
r640 r647 24 24 #include <hal_kernel_types.h> 25 25 #include <hal_gpt.h> 26 #include <hal_vmm.h> 26 27 #include <hal_special.h> 27 28 #include <hal_irqmask.h> … … 291 292 uint32_t cycle = (uint32_t)hal_get_cycles(); 292 293 // if( DEBUG_HAL_GPT_LOCK_PTE < cycle ) 293 if( (vpn == 0x 3600) && (gpt_cxy == 0x11) )294 if( (vpn == 0xc1fff) && (gpt_cxy == 0x1) ) 294 295 printk("\n[%s] thread[%x,%x] enters / vpn %x in cluster %x / cycle %d\n", 295 296 __FUNCTION__, this->process->pid, this->trdid, vpn, gpt_cxy, cycle ); … … 360 361 #if DEBUG_HAL_GPT_LOCK_PTE 361 362 // if( DEBUG_HAL_GPT_LOCK_PTE < cycle ) 362 if( (vpn == 0x 3600) && (gpt_cxy == 0x11) )363 if( (vpn == 0xc1fff) && (gpt_cxy == 0x1) ) 363 364 printk("\n[%s] PTE1 unmapped : winner thread[%x,%x] allocates a PT2 for vpn %x in cluster %x\n", 364 365 __FUNCTION__, this->process->pid, this->trdid, vpn, gpt_cxy ); … … 371 372 #if DEBUG_HAL_GPT_LOCK_PTE 372 373 // if( DEBUG_HAL_GPT_LOCK_PTE < cycle ) 373 if( (vpn == 0x 3600) && (gpt_cxy == 0x11) )374 if( (vpn == 0xc1fff) && (gpt_cxy == 0x1) ) 374 375 printk("\n[%s] PTE1 unmapped : loser thread[%x,%x] wait PTE1 for vpn %x in cluster %x\n", 375 376 __FUNCTION__, this->process->pid, this->trdid, vpn, gpt_cxy ); … … 412 413 #if DEBUG_HAL_GPT_LOCK_PTE 413 414 // if( DEBUG_HAL_GPT_LOCK_PTE < cycle ) 414 if( (vpn == 0x 3600) && (gpt_cxy == 0x11) )415 if( (vpn == 0xc1fff) && (gpt_cxy == 0x1) ) 415 416 printk("\n[%s] PTE1 unmapped : loser thread[%x,%x] get PTE1 for vpn %x in cluster %x\n", 416 417 __FUNCTION__, this->process->pid, this->trdid, vpn, gpt_cxy ); … … 426 427 #if DEBUG_HAL_GPT_LOCK_PTE 427 428 // if( DEBUG_HAL_GPT_LOCK_PTE < cycle ) 428 if( (vpn == 0x 3600) && (gpt_cxy == 0x11) )429 if( (vpn == 0xc1fff) && (gpt_cxy == 0x1) ) 429 430 printk("\n[%s] thread[%x,%x] get pte1 %x for vpn %x in cluster %x\n", 430 431 __FUNCTION__, this->process->pid, this->trdid, pte1, vpn, gpt_cxy ); … … 494 495 cycle = (uint32_t)hal_get_cycles(); 495 496 // if( DEBUG_HAL_GPT_LOCK_PTE < cycle ) 496 if( (vpn == 0x 3600) && (gpt_cxy == 0x11) )497 if( (vpn == 0xc1fff) && (gpt_cxy == 0x1) ) 497 498 printk("\n[%s] thread[%x,%x] success / vpn %x in cluster %x / attr %x / ppn %x / cycle %d\n", 498 499 __FUNCTION__, this->process->pid, this->trdid, vpn, gpt_cxy, pte2_attr, pte2_ppn, cycle ); -
trunk/hal/tsar_mips32/core/hal_remote.c
r625 r647 220 220 "mtc2 %4, $24 \n" /* PADDR_EXT <= cxy */ 221 221 "or $8, $0, %3 \n" /* $8 <= new */ 222 "ll $3, 0(%1) \n" /* $3 <= *p addr*/222 "ll $3, 0(%1) \n" /* $3 <= *ptr */ 223 223 "bne $3, %2, 1f \n" /* if ($3 != old) */ 224 224 "li $7, 0 \n" /* $7 <= 0 */ 225 "sc $8, (%1) \n" /* *p addr <= new*/225 "sc $8, (%1) \n" /* *ptr <= new */ 226 226 "or $7, $8, $0 \n" /* $7 <= atomic */ 227 227 "sync \n" -
trunk/hal/tsar_mips32/core/hal_uspace.c
r637 r647 142 142 // If the two buffers are aligned on a word boundary, it moves the data word per word 143 143 // in a first loop, and moves byte per byte the remaining bytes in a second loop. 144 // If the buffers are not aligned, it moves all data byte per byte.144 // If the buffers are not word aligned, it moves all data byte per byte. 145 145 /////////////////////////////////////////////////////////////////////////////////////// 146 146 // @ u_dst_ptr : pointer on destination user buffer
Note: See TracChangeset
for help on using the changeset viewer.