gem5
[DEVELOP-FOR-23.0]
|
#include <gem5_to_tlm.hh>
Classes | |
class | BridgeResponsePort |
Public Types | |
typedef gem5::Gem5ToTlmBridgeBaseParams | Params |
Protected Attributes | |
gem5::AddrRangeMap< gem5::MemBackdoorPtr > | backdoorMap |
![]() | |
sc_sensitive | sensitive |
Private Attributes | |
BridgeResponsePort | bridgeResponsePort |
tlm_utils::simple_initiator_socket< Gem5ToTlmBridge< BITWIDTH >, BITWIDTH > | socket |
sc_gem5::TlmInitiatorWrapper< BITWIDTH > | wrapper |
gem5::System * | system |
tlm::tlm_generic_payload * | blockingRequest |
A transaction after BEGIN_REQ has been sent but before END_REQ, which is blocking the request channel (Exlusion Rule, see IEEE1666) More... | |
bool | needToSendRequestRetry |
Did another gem5 request arrive while currently blocked? This variable is needed when a retry should happen. More... | |
tlm::tlm_generic_payload * | blockingResponse |
A response which has been asked to retry by gem5 and so is blocking the response channel. More... | |
std::unordered_map< tlm::tlm_generic_payload *, gem5::PacketPtr > | packetMap |
A map to record the association between payload and packet. More... | |
gem5::AddrRangeList | addrRanges |
Definition at line 93 of file gem5_to_tlm.hh.
typedef gem5::Gem5ToTlmBridgeBaseParams sc_gem5::Gem5ToTlmBridge< BITWIDTH >::Params |
Definition at line 215 of file gem5_to_tlm.hh.
sc_gem5::Gem5ToTlmBridge< BITWIDTH >::Gem5ToTlmBridge | ( | const Params & | p, |
const sc_core::sc_module_name & | mn | ||
) |
Definition at line 572 of file gem5_to_tlm.cc.
|
overridevirtual |
Reimplemented from sc_core::sc_module.
Definition at line 598 of file gem5_to_tlm.cc.
References sc_core::sc_module::before_end_of_elaboration(), sc_gem5::Gem5ToTlmBridge< BITWIDTH >::invalidate_direct_mem_ptr(), and sc_gem5::Gem5ToTlmBridge< BITWIDTH >::nb_transport_bw().
|
overridevirtual |
Reimplemented from sc_core::sc_module.
Definition at line 586 of file gem5_to_tlm.cc.
References sc_core::sc_module::gem5_getPort().
|
inlineprotected |
Definition at line 203 of file gem5_to_tlm.hh.
References sc_gem5::Gem5ToTlmBridge< BITWIDTH >::addrRanges.
|
protected |
Definition at line 270 of file gem5_to_tlm.cc.
References tlm::tlm_generic_payload::get_address(), tlm::tlm_generic_payload::get_data_length(), tlm::tlm_dmi::get_dmi_ptr(), tlm::tlm_dmi::get_end_address(), tlm::tlm_dmi::get_start_address(), tlm::tlm_dmi::is_read_allowed(), tlm::tlm_dmi::is_write_allowed(), gem5::MemBackdoor::NoAccess, and gem5::VegaISA::r.
|
inline |
Definition at line 219 of file gem5_to_tlm.hh.
References sc_gem5::Gem5ToTlmBridge< BITWIDTH >::socket.
|
protected |
Definition at line 555 of file gem5_to_tlm.cc.
References gem5::VegaISA::r.
Referenced by sc_gem5::Gem5ToTlmBridge< BITWIDTH >::before_end_of_elaboration().
|
protected |
Definition at line 543 of file gem5_to_tlm.cc.
References gem5::curTick(), gem5::MipsISA::event, sc_gem5::getPriorityOfTlmPhase(), gem5::X86ISA::system, tlm::TLM_ACCEPTED, and sc_core::sc_time::value().
Referenced by sc_gem5::Gem5ToTlmBridge< BITWIDTH >::before_end_of_elaboration().
|
protected |
Definition at line 217 of file gem5_to_tlm.cc.
References tlm::BEGIN_RESP, tlm::END_REQ, tlm::END_RESP, gem5::Packet::isResponse(), gem5::Packet::needsResponse(), tlm::tlm_generic_payload::release(), sc_assert, sc_core::SC_ZERO_TIME, and sc_gem5::setPacketResponse().
|
protected |
Definition at line 302 of file gem5_to_tlm.cc.
References gem5::Packet::cacheResponding(), gem5::Packet::needsResponse(), sc_gem5::packet2payload(), panic_if, sc_core::SC_ZERO_TIME, sc_gem5::setPacketResponse(), tlm::TLM_IGNORE_COMMAND, and sc_core::sc_time::value().
|
protected |
Definition at line 327 of file gem5_to_tlm.cc.
References gem5::Packet::cacheResponding(), gem5::Packet::makeResponse(), gem5::Packet::needsResponse(), sc_gem5::packet2payload(), panic_if, sc_core::SC_ZERO_TIME, tlm::TLM_IGNORE_COMMAND, and sc_core::sc_time::value().
|
protected |
Definition at line 501 of file gem5_to_tlm.cc.
References sc_gem5::packet2payload(), and SC_REPORT_FATAL.
|
protected |
Definition at line 361 of file gem5_to_tlm.cc.
References SC_REPORT_FATAL.
|
protected |
Definition at line 518 of file gem5_to_tlm.cc.
References tlm::tlm_generic_payload::acquire(), mm::allocate(), gem5::MemBackdoorReq::range(), gem5::MemBackdoorReq::readable(), tlm::tlm_generic_payload::release(), tlm::tlm_generic_payload::set_address(), tlm::tlm_generic_payload::set_command(), tlm::tlm_generic_payload::set_data_length(), tlm::tlm_generic_payload::set_data_ptr(), tlm::tlm_generic_payload::set_streaming_width(), gem5::AddrRange::size(), gem5::AddrRange::start(), tlm::TLM_IGNORE_COMMAND, tlm::TLM_READ_COMMAND, tlm::TLM_WRITE_COMMAND, and gem5::MemBackdoorReq::writeable().
|
protected |
Definition at line 476 of file gem5_to_tlm.cc.
References tlm::END_RESP, tlm::tlm_generic_payload::release(), sc_assert, and sc_core::SC_ZERO_TIME.
|
protected |
Definition at line 371 of file gem5_to_tlm.cc.
References tlm::BEGIN_REQ, tlm::BEGIN_RESP, gem5::Packet::cacheResponding(), gem5::curTick(), tlm::END_REQ, tlm::END_RESP, gem5::MipsISA::event, sc_core::sc_time::from_value(), sc_gem5::getPriorityOfTlmPhase(), gem5::Packet::headerDelay, sc_gem5::packet2payload(), panic_if, gem5::Packet::payloadDelay, sc_assert, gem5::ArmISA::status, gem5::X86ISA::system, tlm::TLM_ACCEPTED, tlm::TLM_COMPLETED, and tlm::TLM_UPDATED.
|
protected |
Definition at line 459 of file gem5_to_tlm.cc.
References SC_REPORT_FATAL.
|
protected |
Definition at line 469 of file gem5_to_tlm.cc.
References panic.
|
private |
Definition at line 183 of file gem5_to_tlm.hh.
Referenced by sc_gem5::Gem5ToTlmBridge< BITWIDTH >::getAddrRanges().
|
protected |
Definition at line 189 of file gem5_to_tlm.hh.
|
private |
A transaction after BEGIN_REQ has been sent but before END_REQ, which is blocking the request channel (Exlusion Rule, see IEEE1666)
Definition at line 163 of file gem5_to_tlm.hh.
|
private |
A response which has been asked to retry by gem5 and so is blocking the response channel.
Definition at line 175 of file gem5_to_tlm.hh.
|
private |
Definition at line 152 of file gem5_to_tlm.hh.
|
private |
Did another gem5 request arrive while currently blocked? This variable is needed when a retry should happen.
Definition at line 169 of file gem5_to_tlm.hh.
|
private |
A map to record the association between payload and packet.
This helps us could get the correct packet when handling nonblocking interfaces.
Definition at line 181 of file gem5_to_tlm.hh.
|
private |
Definition at line 154 of file gem5_to_tlm.hh.
Referenced by sc_gem5::Gem5ToTlmBridge< BITWIDTH >::getSocket().
|
private |
Definition at line 157 of file gem5_to_tlm.hh.
|
private |
Definition at line 155 of file gem5_to_tlm.hh.