Changeset 1063 for trunk/modules


Ignore:
Timestamp:
Nov 13, 2019, 6:24:53 PM (4 years ago)
Author:
alain
Message:

Improve the print_trace() function to display CP2 registers.

Location:
trunk/modules/vci_cc_vcache_wrapper/caba/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_cc_vcache_wrapper/caba/source/include/vci_cc_vcache_wrapper.h

    r1061 r1063  
    357357    sc_signal<uint32_t>     r_mmu_ietr;                 // mmu instruction error type
    358358    sc_signal<uint32_t>     r_mmu_detr;                 // mmu data error type
     359    sc_signal<uint32_t>     r_mmu_dext;                 // data address extension (when vci_address > 32 bits)
     360    sc_signal<uint32_t>     r_mmu_iext;                 // inst address extension (when vci_address > 32 bits)
    359361    uint32_t                r_mmu_params;                       // read-only
    360362    uint32_t                r_mmu_release;                      // read_only
     
    408410    sc_signal<size_t>       r_icache_cc_send_way;           // ICACHE cc_send way
    409411    sc_signal<size_t>       r_icache_cc_send_updt_tab_idx;  // ICACHE cc_send update table index
    410 
    411     // Physical address extension for data access
    412     sc_signal<uint32_t>     r_icache_paddr_ext;             // CP2 register (if vci_address > 32)
    413412
    414413    ///////////////////////////////
     
    510509    bool                    *r_dcache_in_tlb;               // copy exist in dtlb or itlb
    511510    bool                    *r_dcache_contains_ptd;         // cache line contains a PTD
    512 
    513     // Physical address extension for data access
    514     sc_signal<uint32_t>     r_dcache_paddr_ext;             // CP2 register (if vci_address > 32)
    515511
    516512    ///////////////////////////////////
     
    766762    // Set the m_dcache_paddr_ext_reset attribute
    767763    //
    768     // The r_dcache_paddr_ext register will be initialized after
     764    // The r_mmu_dext register will be initialized after
    769765    // reset with the m_dcache_paddr_ext_reset value
    770766    /////////////////////////////////////////////////////////////
  • trunk/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp

    r1061 r1063  
    502502              << "  MMU_MODE = " << r_mmu_mode.read()
    503503              << " | MMU_PTPR = " << r_mmu_ptpr.read()
    504               << " | LLSC_COUNT = " << r_llsc_count.read()
     504              << " | MMU_DEXT = " << r_mmu_dext.read()
     505              << " | MMU_IEXT = " << r_mmu_iext.read() << std::endl;
     506
     507    std::cout << "  LLSC_COUNT = " << r_llsc_count.read()
    505508              << " | LLSC_PADDR = " << r_llsc_paddr.read()
    506509              << " | LLSC_KEY = " << r_llsc_key.read();
     
    793796
    794797        // reset data physical address extension
    795         r_dcache_paddr_ext = m_dcache_paddr_ext_reset;
     798        r_mmu_dext = m_dcache_paddr_ext_reset;
    796799
    797800        // reset inst physical address extension
    798         r_icache_paddr_ext = m_icache_paddr_ext_reset;
     801        r_mmu_iext = m_icache_paddr_ext_reset;
    799802
    800803        // reset dcache directory extension
     
    11531156            else if ((int) r_dcache_xtn_opcode.read() == (int) iss_t::XTN_INST_PADDR_EXT)
    11541157            {
    1155                 r_icache_paddr_ext = r_dcache_save_wdata.read();
     1158                r_mmu_iext = r_dcache_save_wdata.read();
    11561159                r_dcache_xtn_req   = false;
    11571160            }
     
    12001203            else if (vci_param::N > 32)
    12011204            {
    1202                 paddr = paddr | ((paddr_t) r_icache_paddr_ext.read() << 32);
     1205                paddr = paddr | ((paddr_t) r_mmu_iext.read() << 32);
    12031206            }
    12041207
     
    23272330                // we take into account the paddr extension
    23282331                if (vci_param::N > 32)
    2329                     paddr = paddr | ((paddr_t) (r_dcache_paddr_ext.read()) << 32);
     2332                    paddr = paddr | ((paddr_t) (r_mmu_dext.read()) << 32);
    23302333            }
    23312334        } // end physical address computation
     
    25502553
    25512554                    case iss_t::XTN_DATA_PADDR_EXT:
    2552                         m_drsp.rdata = r_dcache_paddr_ext.read();
     2555                        m_drsp.rdata = r_mmu_dext.read();
    25532556                        m_drsp.valid = true;
    25542557                        m_drsp.error = false;
     
    25562559
    25572560                    case iss_t::XTN_INST_PADDR_EXT:
    2558                         m_drsp.rdata = r_icache_paddr_ext.read();
     2561                        m_drsp.rdata = r_mmu_iext.read();
    25592562                        m_drsp.valid = true;
    25602563                        m_drsp.error = false;
     
    26782681
    26792682                    case iss_t::XTN_DATA_PADDR_EXT:  // no cache or tlb access
    2680                         r_dcache_paddr_ext = m_dreq.wdata;
     2683                        r_mmu_dext = m_dreq.wdata;
    26812684                        m_drsp.valid       = true;
    26822685                        r_dcache_fsm       = DCACHE_IDLE;
     
    39974000            paddr = (paddr_t)r_dcache_save_wdata.read();
    39984001            if (vci_param::N > 32)
    3999                 paddr = paddr | ((paddr_t)(r_dcache_paddr_ext.read()) << 32);
     4002                paddr = paddr | ((paddr_t)(r_mmu_dext.read()) << 32);
    40004003            hit = true;
    40014004        }
Note: See TracChangeset for help on using the changeset viewer.