Changeset 82 for trunk/modules/vci_mem_cache_v3
- Timestamp:
- Sep 2, 2010, 2:22:12 PM (14 years ago)
- Location:
- trunk/modules/vci_mem_cache_v3/caba/source
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/vci_mem_cache_v3/caba/source/include/vci_mem_cache_v3.h
r2 r82 61 61 #define TRANSACTION_TAB_LINES 4 // Number of lines in the transaction tab 62 62 #define UPDATE_TAB_LINES 4 // Number of lines in the update tab 63 #define BROADCAST_ADDR 0x0000000003 // Address to send the broadcast invalidate64 63 65 64 namespace soclib { namespace caba { … … 362 361 const soclib::common::AddressMaskingTable<vci_addr_t> m_nline; 363 362 363 // broadcast address 364 vci_addr_t broadcast_addr; 365 364 366 ////////////////////////////////////////////////// 365 367 // Others registers -
trunk/modules/vci_mem_cache_v3/caba/source/src/vci_mem_cache_v3.cpp
r57 r82 325 325 assert(nways <= 32); 326 326 327 // Set the broadcast address with Xmin,Xmax,Ymin,Ymax set to maximum 328 broadcast_addr = 0x3 | (0x7C1F << (vci_param::N-20)); 327 329 328 330 // Get the segments associated to the MemCache … … 2358 2360 } 2359 2361 if ( (p_vci_tgt_cleanup.cmd.read() == vci_param::CMD_WRITE) && 2360 (((addr_t)(p_vci_tgt_cleanup.address.read()) ) != BROADCAST_ADDR) &&2362 (((addr_t)(p_vci_tgt_cleanup.address.read())&0x3) != 0x3) && 2361 2363 reached) { 2362 2364 … … 4337 4339 p_vci_tgt.rtrdid = r_write_to_tgt_rsp_trdid.read(); 4338 4340 p_vci_tgt.rpktid = r_write_to_tgt_rsp_pktid.read(); 4339 p_vci_tgt.rerror = 0 ;4341 p_vci_tgt.rerror = 0x2 & ( (1 << (vci_param::E + 1)) - 1); // Write OK 4340 4342 p_vci_tgt.reop = true; 4341 4343 break; … … 4421 4423 case INIT_CMD_XRAM_BRDCAST: 4422 4424 p_vci_ini.cmdval = true; 4423 p_vci_ini.address = BROADCAST_ADDR;4425 p_vci_ini.address = broadcast_addr; 4424 4426 p_vci_ini.wdata = (uint32_t)r_xram_rsp_to_init_cmd_nline.read(); 4425 4427 p_vci_ini.be = ((r_xram_rsp_to_init_cmd_nline.read() >> 32) & 0x3); … … 4431 4433 case INIT_CMD_WRITE_BRDCAST: 4432 4434 p_vci_ini.cmdval = true; 4433 p_vci_ini.address = BROADCAST_ADDR;4435 p_vci_ini.address = broadcast_addr; 4434 4436 p_vci_ini.wdata = (addr_t)r_write_to_init_cmd_nline.read(); 4435 4437 p_vci_ini.be = ((r_write_to_init_cmd_nline.read() >> 32) & 0x3); … … 4476 4478 case INIT_CMD_SC_BRDCAST: 4477 4479 p_vci_ini.cmdval = true; 4478 p_vci_ini.address = BROADCAST_ADDR;4480 p_vci_ini.address = broadcast_addr; 4479 4481 p_vci_ini.wdata = (addr_t)r_llsc_to_init_cmd_nline.read(); 4480 4482 p_vci_ini.be = ((r_llsc_to_init_cmd_nline.read() >> 32) & 0x3); … … 4549 4551 p_vci_tgt_cleanup.rpktid = r_cleanup_pktid.read(); 4550 4552 p_vci_tgt_cleanup.rtrdid = r_cleanup_trdid.read(); 4551 p_vci_tgt_cleanup.rerror = 0 ;4553 p_vci_tgt_cleanup.rerror = 0x2 & ( (1 << (vci_param::E + 1)) - 1); 4552 4554 p_vci_tgt_cleanup.reop = 1; 4553 4555 break;
Note: See TracChangeset
for help on using the changeset viewer.