-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
In the first call b_transport process, the systemc module can set the trans if it can be dmi_enable. If it is true, cpu will call get_mem_ptr func to access the memory directly.
`void do_regular_access(TlmPayload& trans)
{
using sc_core::sc_time;
uint64_t addr = trans.get_address();
sc_time now = m_initiator.initiator_get_local_time();
m_inst.get().unlock_iothread();
m_on_sysc.run_on_sysc([this, &trans, &now] { (*this)->b_transport(trans, now); });
m_inst.get().lock_iothread();
/*
* Reset transaction address before dmi check (could be altered by
* b_transport).
*/
trans.set_address(addr);
check_qemu_mr_hint(trans);
if (trans.is_dmi_allowed()) {
check_dmi_hint_locked(trans);
}
m_initiator.initiator_set_local_time(now);
}`
Is my undstanding right?
Originally posted by @alpha-beta-user in #15 (comment)
Metadata
Metadata
Assignees
Labels
No labels