|
gem5 [DEVELOP-FOR-25.0]
|
#include <gem5_to_tlm.hh>
Classes | |
| class | BridgeResponsePort |
Public Types | |
| typedef gem5::Gem5ToTlmBridgeBaseParams | Params |
Protected Attributes | |
| gem5::AddrRangeMap< gem5::MemBackdoorPtr > | backdoorMap |
Protected Attributes inherited from sc_core::sc_module | |
| 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) | |
| bool | needToSendRequestRetry |
| Did another gem5 request arrive while currently blocked? | |
| tlm::tlm_generic_payload * | blockingResponse |
| A response which has been asked to retry by gem5 and so is blocking the response channel. | |
| std::unordered_map< tlm::tlm_generic_payload *, gem5::PacketPtr > | packetMap |
| A map to record the association between payload and packet. | |
| 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.
References addrRanges, blockingRequest, blockingResponse, bridgeResponsePort, gem5::InvalidPortID, sc_core::sc_object::name(), needToSendRequestRetry, socket, system, and wrapper.
Referenced by sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeResponsePort::BridgeResponsePort().
|
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(), bridgeResponsePort, invalidate_direct_mem_ptr(), nb_transport_bw(), and socket.
|
overridevirtual |
Reimplemented from sc_core::sc_module.
Definition at line 586 of file gem5_to_tlm.cc.
References bridgeResponsePort, sc_core::sc_module::gem5_getPort(), and wrapper.
|
inlineprotected |
Definition at line 203 of file gem5_to_tlm.hh.
References addrRanges.
|
protected |
Definition at line 269 of file gem5_to_tlm.cc.
References backdoorMap, 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, gem5::MipsISA::r, and socket.
Referenced by recvAtomicBackdoor(), and recvMemBackdoorReq().
|
inline |
Definition at line 219 of file gem5_to_tlm.hh.
References socket.
|
protected |
Definition at line 555 of file gem5_to_tlm.cc.
References backdoorMap, and gem5::MipsISA::r.
Referenced by before_end_of_elaboration().
|
protected |
Definition at line 543 of file gem5_to_tlm.cc.
References gem5::curTick(), gem5::MipsISA::event, sc_gem5::getPriorityOfTlmPhase(), pec(), system, tlm::TLM_ACCEPTED, and sc_core::sc_time::value().
Referenced by before_end_of_elaboration().
|
protected |
Definition at line 218 of file gem5_to_tlm.cc.
References tlm::BEGIN_RESP, blockingRequest, blockingResponse, bridgeResponsePort, tlm::END_REQ, tlm::END_RESP, gem5::Packet::isResponse(), gem5::Packet::needsResponse(), needToSendRequestRetry, packetMap, tlm::tlm_generic_payload::release(), sc_assert, sc_core::SC_ZERO_TIME, sc_gem5::setPacketResponse(), and socket.
Referenced by nb_transport_bw(), and recvTimingReq().
|
protected |
Definition at line 301 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(), socket, tlm::TLM_IGNORE_COMMAND, and sc_core::sc_time::value().
|
protected |
Definition at line 326 of file gem5_to_tlm.cc.
References gem5::Packet::cacheResponding(), getBackdoor(), gem5::Packet::makeResponse(), gem5::Packet::needsResponse(), sc_gem5::packet2payload(), panic_if, sc_core::SC_ZERO_TIME, socket, 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(), SC_REPORT_FATAL, and socket.
|
protected |
Definition at line 360 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(), getBackdoor(), sc_gem5::mm, 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 475 of file gem5_to_tlm.cc.
References blockingResponse, bridgeResponsePort, tlm::END_RESP, packetMap, tlm::tlm_generic_payload::release(), sc_assert, sc_core::SC_ZERO_TIME, and socket.
|
protected |
Definition at line 370 of file gem5_to_tlm.cc.
References tlm::BEGIN_REQ, tlm::BEGIN_RESP, blockingRequest, 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, needToSendRequestRetry, sc_gem5::packet2payload(), packetMap, panic_if, gem5::Packet::payloadDelay, pec(), sc_assert, socket, gem5::ArmISA::status, system, tlm::TLM_ACCEPTED, tlm::TLM_COMPLETED, and tlm::TLM_UPDATED.
|
protected |
Definition at line 458 of file gem5_to_tlm.cc.
References SC_REPORT_FATAL.
|
protected |
Definition at line 468 of file gem5_to_tlm.cc.
References panic.
|
private |
Definition at line 183 of file gem5_to_tlm.hh.
Referenced by Gem5ToTlmBridge(), and getAddrRanges().
|
protected |
Definition at line 189 of file gem5_to_tlm.hh.
Referenced by getBackdoor(), and invalidate_direct_mem_ptr().
|
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.
Referenced by Gem5ToTlmBridge(), pec(), and recvTimingReq().
|
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.
Referenced by Gem5ToTlmBridge(), pec(), and recvRespRetry().
|
private |
Definition at line 152 of file gem5_to_tlm.hh.
Referenced by before_end_of_elaboration(), gem5_getPort(), Gem5ToTlmBridge(), pec(), and recvRespRetry().
|
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.
Referenced by Gem5ToTlmBridge(), pec(), and recvTimingReq().
|
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.
Referenced by pec(), recvRespRetry(), and recvTimingReq().
|
private |
Definition at line 154 of file gem5_to_tlm.hh.
Referenced by before_end_of_elaboration(), Gem5ToTlmBridge(), getBackdoor(), getSocket(), pec(), recvAtomic(), recvAtomicBackdoor(), recvFunctional(), recvRespRetry(), and recvTimingReq().
|
private |
Definition at line 157 of file gem5_to_tlm.hh.
Referenced by Gem5ToTlmBridge(), nb_transport_bw(), and recvTimingReq().
|
private |
Definition at line 155 of file gem5_to_tlm.hh.
Referenced by gem5_getPort(), and Gem5ToTlmBridge().