mem-ruby: Add missing transitions + wakes for Dma events
This also changes one of the wakeUpDependents calls to a wakeUpAllDependentsAddr call to prevent a hang. Change-Id: Ia076414e5c6d9c8c0b2576d1f442195d75d275fc Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/42463 Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com> Reviewed-by: Matthew Poremba <matthew.poremba@amd.com> Maintainer: Matt Sinclair <mattdsinclair@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Matt Sinclair
parent
6b1f8de43a
commit
90d2aac515
@@ -1119,7 +1119,7 @@ machine(MachineType:Directory, "AMD Baseline protocol")
|
||||
|
||||
// The exit state is always going to be U, so wakeUpDependents logic should be covered in all the
|
||||
// transitions which are flowing into U.
|
||||
transition({BL, BS_M, BM_M, B_M, BP, BDW_P, BS_PM, BM_PM, B_PM, BS_Pm, BM_Pm, B_Pm, B}, {DmaRead,DmaWrite}){
|
||||
transition({BL, BDR_M, BS_M, BM_M, B_M, BP, BDR_PM, BDW_P, BS_PM, BM_PM, B_PM, BDR_Pm, BS_Pm, BM_Pm, B_Pm, B}, {DmaRead,DmaWrite}){
|
||||
sd_stallAndWaitRequest;
|
||||
}
|
||||
|
||||
@@ -1280,6 +1280,7 @@ machine(MachineType:Directory, "AMD Baseline protocol")
|
||||
transition(BDR_M, MemData, U) {
|
||||
mt_writeMemDataToTBE;
|
||||
dd_sendResponseDmaData;
|
||||
wa_wakeUpAllDependentsAddr;
|
||||
dt_deallocateTBE;
|
||||
pm_popMemQueue;
|
||||
}
|
||||
@@ -1373,7 +1374,7 @@ machine(MachineType:Directory, "AMD Baseline protocol")
|
||||
dd_sendResponseDmaData;
|
||||
// Check for pending requests from the core we put to sleep while waiting
|
||||
// for a response
|
||||
wa_wakeUpDependents;
|
||||
wa_wakeUpAllDependentsAddr;
|
||||
dt_deallocateTBE;
|
||||
pt_popTriggerQueue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user