From: Brandon Potter Date: Tue, 20 Feb 2018 18:19:39 +0000 (-0500) Subject: ruby,gpu-compute: bugfix for GPU_VIPER* protocols X-Git-Tag: v19.0.0.0~2168 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8e7fdf4ac460cbfbb373c951a6c7cdae93446241;p=gem5.git ruby,gpu-compute: bugfix for GPU_VIPER* protocols 12db50c895 changed how directory mapping works, but it seems to have broken the VIPER variants of the GPU protocols. The fix involves declaring the function in the related '.sm' files. Change-Id: I116980d42a4aa648369058b529c9f8d9693eb894 Reviewed-on: https://gem5-review.googlesource.com/8521 Reviewed-by: Anthony Gutierrez Reviewed-by: Jason Lowe-Power Maintainer: Anthony Gutierrez --- diff --git a/src/mem/protocol/GPU_VIPER-TCC.sm b/src/mem/protocol/GPU_VIPER-TCC.sm index 45477d8d8..f8da4abf1 100644 --- a/src/mem/protocol/GPU_VIPER-TCC.sm +++ b/src/mem/protocol/GPU_VIPER-TCC.sm @@ -126,6 +126,7 @@ machine(MachineType:TCC, "TCC Cache") void wakeUpAllBuffers(); void wakeUpBuffers(Addr a); + MachineID mapAddressToMachine(Addr addr, MachineType mtype); // FUNCTION DEFINITIONS Tick clockEdge(); diff --git a/src/mem/protocol/GPU_VIPER_Region-TCC.sm b/src/mem/protocol/GPU_VIPER_Region-TCC.sm index e3243b3e1..04d7b7a6f 100644 --- a/src/mem/protocol/GPU_VIPER_Region-TCC.sm +++ b/src/mem/protocol/GPU_VIPER_Region-TCC.sm @@ -131,6 +131,7 @@ machine(MachineType:TCC, "TCC Cache") void wakeUpAllBuffers(); void wakeUpBuffers(Addr a); + MachineID mapAddressToMachine(Addr addr, MachineType mtype); // FUNCTION DEFINITIONS diff --git a/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm b/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm index 02b211892..cc5ceb0b5 100644 --- a/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm +++ b/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm @@ -210,6 +210,8 @@ machine(MachineType:Directory, "AMD_Base-like protocol") void wakeUpBuffers(Addr a); Cycles curCycle(); + MachineID mapAddressToMachine(Addr addr, MachineType mtype); + Entry getDirectoryEntry(Addr addr), return_by_pointer="yes" { Entry dir_entry := static_cast(Entry, "pointer", directory.lookup(addr));