gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
amdgpu_vm.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021 Advanced Micro Devices, Inc.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its
16  * contributors may be used to endorse or promote products derived from this
17  * software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef __DEV_AMDGPU_AMDGPU_VM_HH__
33 #define __DEV_AMDGPU_AMDGPU_VM_HH__
34 
35 #include <vector>
36 
38 #include "base/intmath.hh"
40 #include "mem/packet.hh"
41 #include "mem/translation_gen.hh"
42 #include "sim/serialize.hh"
43 
54 #define mmVM_INVALIDATE_ENG17_ACK 0x08c6
55 #define mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LO32 0x08eb
56 #define mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32 0x08ec
57 #define mmVM_CONTEXT0_PAGE_TABLE_START_ADDR_LO32 0x090b
58 #define mmVM_CONTEXT0_PAGE_TABLE_START_ADDR_HI32 0x090c
59 #define mmVM_CONTEXT0_PAGE_TABLE_END_ADDR_LO32 0x092b
60 #define mmVM_CONTEXT0_PAGE_TABLE_END_ADDR_HI32 0x092c
61 
62 #define mmMC_VM_FB_OFFSET 0x096b
63 #define mmMC_VM_FB_LOCATION_BASE 0x0980
64 #define mmMC_VM_FB_LOCATION_TOP 0x0981
65 #define mmMC_VM_AGP_TOP 0x0982
66 #define mmMC_VM_AGP_BOT 0x0983
67 #define mmMC_VM_AGP_BASE 0x0984
68 #define mmMC_VM_SYSTEM_APERTURE_LOW_ADDR 0x0985
69 #define mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x0986
70 
71 #define mmMMHUB_VM_INVALIDATE_ENG17_SEM 0x06e2
72 #define mmMMHUB_VM_INVALIDATE_ENG17_REQ 0x06f4
73 #define mmMMHUB_VM_INVALIDATE_ENG17_ACK 0x0706
74 #define mmMMHUB_VM_FB_LOCATION_BASE 0x082c
75 #define mmMMHUB_VM_FB_LOCATION_TOP 0x082d
76 
77 #define VEGA10_FB_LOCATION_BASE 0x6a0b0
78 #define VEGA10_FB_LOCATION_TOP 0x6a0b4
79 
80 #define MI100_MEM_SIZE_REG 0x0378c
81 #define MI100_FB_LOCATION_BASE 0x6ac00
82 #define MI100_FB_LOCATION_TOP 0x6ac04
83 
84 #define MI200_MEM_SIZE_REG 0x0378c
85 #define MI200_FB_LOCATION_BASE 0x6b300
86 #define MI200_FB_LOCATION_TOP 0x6b304
87 
88 // AMD GPUs support 16 different virtual address spaces
89 static constexpr int AMDGPU_VM_COUNT = 16;
90 
91 // These apertures have a fixed page size
92 static constexpr int AMDGPU_AGP_PAGE_SIZE = 4096;
93 static constexpr int AMDGPU_GART_PAGE_SIZE = 4096;
94 static constexpr int AMDGPU_MMHUB_PAGE_SIZE = 4096;
95 
96 // Vega page size can be any power of 2 between 4kB and 1GB.
97 static constexpr int AMDGPU_USER_PAGE_SIZE = 4096;
98 
99 namespace gem5
100 {
101 
102 class AMDGPUVM : public Serializable
103 {
104  private:
105  typedef struct GEM5_PACKED
106  {
107  // Page table addresses: from (Base + Start) to (End)
108  union
109  {
110  struct
111  {
112  uint32_t ptBaseL;
113  uint32_t ptBaseH;
114  };
116  };
117  union
118  {
119  struct
120  {
121  uint32_t ptStartL;
122  uint32_t ptStartH;
123  };
125  };
126  union
127  {
128  struct
129  {
130  uint32_t ptEndL;
131  uint32_t ptEndH;
132  };
134  };
135  } AMDGPUVMContext;
136 
138  {
148 
151 
152  // MMHUB aperture. These addresses mirror the framebuffer, so addresses
153  // can be calculated by subtracting the base address.
154  uint64_t mmhubBase = 0x0;
155  uint64_t mmhubTop = 0x0;
156 
162 
163  public:
164  AMDGPUVM();
165 
169  Addr gartBase();
173  Addr gartSize();
174 
179  std::unordered_map<uint64_t, uint64_t> gartTable;
180 
181  void readMMIO(PacketPtr pkt, Addr offset);
182  void writeMMIO(PacketPtr pkt, Addr offset);
183 
187  bool
189  {
190  return ((vaddr >= vmContext0.agpBot) && (vaddr <= vmContext0.agpTop));
191  }
192 
196 
197  bool
199  {
200  return ((vaddr >= getMMHUBBase()) && (vaddr <= getMMHUBTop()));
201  }
202 
204  Addr getMMHUBTop() { return mmhubTop; }
205 
208 
209  bool
211  {
212  return ((vaddr >= vmContext0.fbBase) && (vaddr <= vmContext0.fbTop));
213  }
214 
218 
219  bool
221  {
222  return ((vaddr >= vmContext0.sysAddrL) &&
223  (vaddr <= vmContext0.sysAddrH));
224  }
225 
228 
229  Addr
231  {
232  // Aperture ranges:
233  // NBIO 0x0 - 0x4280
234  // IH 0x4280 - 0x4980
235  // SDMA0 0x4980 - 0x5180
236  // SDMA1 0x5180 - 0x5980
237  // GRBM 0x8000 - 0xD000
238  // GFX 0x28000 - 0x3F000
239  // MMHUB 0x68000 - 0x6a120
240 
241  if (IH_BASE <= addr && addr < IH_BASE + IH_SIZE)
242  return IH_BASE;
243  else if (SDMA0_BASE <= addr && addr < SDMA0_BASE + SDMA_SIZE)
244  return SDMA0_BASE;
245  else if (SDMA1_BASE <= addr && addr < SDMA1_BASE + SDMA_SIZE)
246  return SDMA1_BASE;
247  else if (GRBM_BASE <= addr && addr < GRBM_BASE + GRBM_SIZE)
248  return GRBM_BASE;
249  else if (GFX_BASE <= addr && addr < GFX_BASE + GFX_SIZE)
250  return GFX_BASE;
251  else if (MMHUB_BASE <= addr && addr < MMHUB_BASE + MMHUB_SIZE)
252  return MMHUB_BASE;
253  else {
254  warn_once("Accessing unsupported MMIO aperture! Assuming NBIO\n");
255  return NBIO_BASE;
256  }
257 
258  }
259 
260  // Gettig mapped aperture base addresses
261  Addr
263  {
264  if (addr < gartBase()) {
265  warn_once("Accessing unsupported frame apperture!\n");
266  return ~0;
267  } else if (gartBase() <= addr && addr < (gartBase() + gartSize())) {
268  return gartBase();
269  } else {
270  warn_once("Accessing unsupported frame apperture!\n");
271  return ~0;
272  }
273 
274  }
275 
279  void
280  setPageTableBase(uint16_t vmid, Addr ptBase)
281  {
282  vmContexts[vmid].ptBase = ptBase;
283  }
284 
285  Addr
286  getPageTableBase(uint16_t vmid)
287  {
288  assert(vmid > 0 && vmid < vmContexts.size());
289  return vmContexts[vmid].ptBase;
290  }
291 
292  Addr
293  getPageTableStart(uint16_t vmid)
294  {
295  assert(vmid > 0 && vmid < vmContexts.size());
296  return vmContexts[vmid].ptStart;
297  }
298 
303  void invalidateTLBs();
304 
305 
306  void serialize(CheckpointOut &cp) const override;
307  void unserialize(CheckpointIn &cp) override;
308 
317  {
318  private:
320 
321  void translate(Range &range) const override;
322 
323  public:
325  : TranslationGen(vaddr, size), vm(_vm)
326  {}
327  };
328 
330  {
331  private:
333 
334  void translate(Range &range) const override;
335 
336  public:
338  : TranslationGen(vaddr, size), vm(_vm)
339  {}
340  };
341 
343  {
344  private:
346 
347  void translate(Range &range) const override;
348 
349  public:
351  : TranslationGen(vaddr, size), vm(_vm)
352  {}
353  };
354 
356  {
357  private:
360  int vmid;
361 
362  void translate(Range &range) const override;
363 
364  public:
365  UserTranslationGen(AMDGPUVM *_vm, VegaISA::Walker *_walker, int _vmid,
366  Addr vaddr, Addr size)
367  : TranslationGen(vaddr, size), vm(_vm), walker(_walker),
368  vmid(_vmid)
369  {}
370  };
371 };
372 
373 } // namespace gem5
374 
375 #endif // __DEV_AMDGPU_AMDGPU_VM_HH__
gem5::AMDGPUVM::readMMIO
void readMMIO(PacketPtr pkt, Addr offset)
Definition: amdgpu_vm.cc:69
gem5::GFX_SIZE
static constexpr uint32_t GFX_SIZE
Definition: amdgpu_defines.hh:82
gem5::TranslationGen::size
Addr size() const
Definition: translation_gen.hh:112
gem5::ArmISA::tlb
Bitfield< 59, 56 > tlb
Definition: misc_types.hh:113
gem5::AMDGPUVM::getAGPBase
Addr getAGPBase()
Definition: amdgpu_vm.hh:195
gem5::AMDGPUVM::inFB
bool inFB(Addr vaddr)
Definition: amdgpu_vm.hh:210
gem5::AMDGPUVM::AMDGPUSysVMContext::agpBase
Addr agpBase
Definition: amdgpu_vm.hh:139
gem5::AMDGPUVM::GEM5_PACKED::ptStart
Addr ptStart
Definition: amdgpu_vm.hh:124
gem5::AMDGPUVM::UserTranslationGen::translate
void translate(Range &range) const override
Subclasses implement this function to complete TranslationGen.
Definition: amdgpu_vm.cc:353
gem5::AMDGPUVM
Definition: amdgpu_vm.hh:102
gem5::SDMA1_BASE
static constexpr uint32_t SDMA1_BASE
Definition: amdgpu_defines.hh:66
gem5::GFX_BASE
static constexpr uint32_t GFX_BASE
Definition: amdgpu_defines.hh:81
serialize.hh
gem5::AMDGPUVM::AMDGPUSysVMContext::agpTop
Addr agpTop
Definition: amdgpu_vm.hh:140
AMDGPU_USER_PAGE_SIZE
static constexpr int AMDGPU_USER_PAGE_SIZE
Definition: amdgpu_vm.hh:97
gem5::NBIO_BASE
static constexpr uint32_t NBIO_BASE
Definition: amdgpu_defines.hh:91
gem5::AMDGPUVM::MMHUBTranslationGen::vm
AMDGPUVM * vm
Definition: amdgpu_vm.hh:345
warn_once
#define warn_once(...)
Definition: logging.hh:260
gem5::AMDGPUVM::AMDGPUSysVMContext::fbOffset
Addr fbOffset
Definition: amdgpu_vm.hh:144
gem5::AMDGPUVM::GEM5_PACKED::ptEnd
Addr ptEnd
Definition: amdgpu_vm.hh:133
gem5::AMDGPUVM::getMmioAperture
Addr getMmioAperture(Addr addr)
Definition: amdgpu_vm.hh:230
gem5::VegaISA::GpuTLB
Definition: tlb.hh:62
gem5::CheckpointIn
Definition: serialize.hh:68
gem5::AMDGPUVM::getFBOffset
Addr getFBOffset()
Definition: amdgpu_vm.hh:217
gem5::AMDGPUVM::vmContext0
AMDGPUSysVMContext vmContext0
Definition: amdgpu_vm.hh:149
AMDGPU_MMHUB_PAGE_SIZE
static constexpr int AMDGPU_MMHUB_PAGE_SIZE
Definition: amdgpu_vm.hh:94
gem5::AMDGPUVM::AMDGPUSysVMContext::fbBase
Addr fbBase
Definition: amdgpu_vm.hh:142
top
Definition: test.h:61
gem5::AMDGPUVM::UserTranslationGen::vm
AMDGPUVM * vm
Definition: amdgpu_vm.hh:358
gem5::AMDGPUVM::gartBase
Addr gartBase()
Return base address of GART table in framebuffer.
Definition: amdgpu_vm.cc:57
gem5::AMDGPUVM::inMMHUB
bool inMMHUB(Addr vaddr)
Definition: amdgpu_vm.hh:198
std::vector
STL vector class.
Definition: stl.hh:37
gem5::AMDGPUVM::AMDGPUSysVMContext::sysAddrH
Addr sysAddrH
Definition: amdgpu_vm.hh:146
gem5::AMDGPUVM::getMMHUBBase
Addr getMMHUBBase()
Definition: amdgpu_vm.hh:203
gem5::AMDGPUVM::getFrameAperture
Addr getFrameAperture(Addr addr)
Definition: amdgpu_vm.hh:262
gem5::GRBM_SIZE
static constexpr uint32_t GRBM_SIZE
Definition: amdgpu_defines.hh:77
gem5::X86ISA::base
Bitfield< 51, 12 > base
Definition: pagetable.hh:141
gem5::AMDGPUVM::GEM5_PACKED::ptStartH
uint32_t ptStartH
Definition: amdgpu_vm.hh:122
gem5::AMDGPUVM::AMDGPUVM
AMDGPUVM()
Definition: amdgpu_vm.cc:45
gem5::AMDGPUVM::getAGPTop
Addr getAGPTop()
Definition: amdgpu_vm.hh:194
gem5::AMDGPUVM::inAGP
bool inAGP(Addr vaddr)
Methods for resolving apertures.
Definition: amdgpu_vm.hh:188
gem5::AMDGPUVM::setPageTableBase
void setPageTableBase(uint16_t vmid, Addr ptBase)
Page table base/start accessors for user VMIDs.
Definition: amdgpu_vm.hh:280
gem5::AMDGPUVM::AMDGPUSysVMContext
gem5::AMDGPUVM::AMDGPUSysVMContext AMDGPUSysVMContext
gem5::AMDGPUVM::UserTranslationGen::UserTranslationGen
UserTranslationGen(AMDGPUVM *_vm, VegaISA::Walker *_walker, int _vmid, Addr vaddr, Addr size)
Definition: amdgpu_vm.hh:365
gem5::AMDGPUVM::UserTranslationGen::walker
VegaISA::Walker * walker
Definition: amdgpu_vm.hh:359
gem5::AMDGPUVM::GEM5_PACKED::ptBaseH
uint32_t ptBaseH
Definition: amdgpu_vm.hh:113
gem5::TranslationGen::Range
This structure represents a single, contiguous translation, or carries information about whatever fau...
Definition: translation_gen.hh:68
gem5::AMDGPUVM::AMDGPUSysVMContext::sysAddrL
Addr sysAddrL
Definition: amdgpu_vm.hh:145
gem5::AMDGPUVM::GARTTranslationGen::vm
AMDGPUVM * vm
Definition: amdgpu_vm.hh:332
packet.hh
gem5::AMDGPUVM::vmContexts
std::vector< AMDGPUVMContext > vmContexts
Definition: amdgpu_vm.hh:150
gem5::AMDGPUVM::invalidateTLBs
void invalidateTLBs()
Definition: amdgpu_vm.cc:174
gem5::AMDGPUVM::GEM5_PACKED::ptBase
Addr ptBase
Definition: amdgpu_vm.hh:115
gem5::AMDGPUVM::mmhubTop
uint64_t mmhubTop
Definition: amdgpu_vm.hh:155
gem5::Serializable
Basic support for object serialization.
Definition: serialize.hh:169
gem5::AMDGPUVM::GEM5_PACKED::ptEndH
uint32_t ptEndH
Definition: amdgpu_vm.hh:131
gem5::AMDGPUVM::MMHUBTranslationGen::translate
void translate(Range &range) const override
Subclasses implement this function to complete TranslationGen.
Definition: amdgpu_vm.cc:337
gem5::AMDGPUVM::setMMHUBTop
void setMMHUBTop(Addr top)
Definition: amdgpu_vm.hh:207
gem5::AMDGPUVM::MMHUBTranslationGen
Definition: amdgpu_vm.hh:342
gem5::Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition: packet.hh:294
translation_gen.hh
pagetable_walker.hh
gem5::AMDGPUVM::MMHUBTranslationGen::MMHUBTranslationGen
MMHUBTranslationGen(AMDGPUVM *_vm, Addr vaddr, Addr size)
Definition: amdgpu_vm.hh:350
gem5::AMDGPUVM::gpu_tlbs
std::vector< VegaISA::GpuTLB * > gpu_tlbs
List of TLBs associated with the GPU device.
Definition: amdgpu_vm.hh:161
amdgpu_defines.hh
gem5::ArmISA::offset
Bitfield< 23, 0 > offset
Definition: types.hh:144
gem5::AMDGPUVM::GEM5_PACKED::ptEndL
uint32_t ptEndL
Definition: amdgpu_vm.hh:130
gem5::AMDGPUVM::registerTLB
void registerTLB(VegaISA::GpuTLB *tlb)
Control methods for TLBs associated with the GPU device.
Definition: amdgpu_vm.cc:167
gem5::AMDGPUVM::getFBTop
Addr getFBTop()
Definition: amdgpu_vm.hh:216
gem5::AMDGPUVM::AMDGPUSysVMContext::agpBot
Addr agpBot
Definition: amdgpu_vm.hh:141
gem5::AMDGPUVM::UserTranslationGen
Definition: amdgpu_vm.hh:355
AMDGPU_VM_COUNT
static constexpr int AMDGPU_VM_COUNT
Definition: amdgpu_vm.hh:89
gem5::AMDGPUVM::setMMHUBBase
void setMMHUBBase(Addr base)
Definition: amdgpu_vm.hh:206
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
gem5::AMDGPUVM::getPageTableStart
Addr getPageTableStart(uint16_t vmid)
Definition: amdgpu_vm.hh:293
gem5::AMDGPUVM::gartTable
std::unordered_map< uint64_t, uint64_t > gartTable
Copy of GART table.
Definition: amdgpu_vm.hh:179
gem5::TranslationGen
TranslationGen is a base class for a generator object which returns information about address transla...
Definition: translation_gen.hh:60
gem5::AMDGPUVM::getAGPBot
Addr getAGPBot()
Definition: amdgpu_vm.hh:193
gem5::AMDGPUVM::AGPTranslationGen
Translation range generators.
Definition: amdgpu_vm.hh:316
gem5::AMDGPUVM::GARTTranslationGen::translate
void translate(Range &range) const override
Subclasses implement this function to complete TranslationGen.
Definition: amdgpu_vm.cc:301
AMDGPU_AGP_PAGE_SIZE
static constexpr int AMDGPU_AGP_PAGE_SIZE
Definition: amdgpu_vm.hh:92
gem5::AMDGPUVM::getPageTableBase
Addr getPageTableBase(uint16_t vmid)
Definition: amdgpu_vm.hh:286
gem5::AMDGPUVM::GEM5_PACKED::ptStartL
uint32_t ptStartL
Definition: amdgpu_vm.hh:121
gem5::IH_BASE
static constexpr uint32_t IH_BASE
Definition: amdgpu_defines.hh:71
gem5::AMDGPUVM::writeMMIO
void writeMMIO(PacketPtr pkt, Addr offset)
Definition: amdgpu_vm.cc:105
gem5::AMDGPUVM::GARTTranslationGen
Definition: amdgpu_vm.hh:329
gem5::AMDGPUVM::getSysAddrRangeHigh
Addr getSysAddrRangeHigh()
Definition: amdgpu_vm.hh:227
gem5::AMDGPUVM::gartSize
Addr gartSize()
Return size of GART in number of PTEs.
Definition: amdgpu_vm.cc:63
gem5::AMDGPUVM::AGPTranslationGen::vm
AMDGPUVM * vm
Definition: amdgpu_vm.hh:319
gem5::AMDGPUVM::AMDGPUSysVMContext
Definition: amdgpu_vm.hh:137
gem5::AMDGPUVM::UserTranslationGen::vmid
int vmid
Definition: amdgpu_vm.hh:360
gem5::AMDGPUVM::GARTTranslationGen::GARTTranslationGen
GARTTranslationGen(AMDGPUVM *_vm, Addr vaddr, Addr size)
Definition: amdgpu_vm.hh:337
gem5::MMHUB_BASE
static constexpr uint32_t MMHUB_BASE
Definition: amdgpu_defines.hh:86
gem5::AMDGPUVM::AMDGPUSysVMContext::fbTop
Addr fbTop
Definition: amdgpu_vm.hh:143
gem5::AMDGPUVM::AMDGPUVMContext
struct gem5::AMDGPUVM::GEM5_PACKED AMDGPUVMContext
gem5::SDMA_SIZE
static constexpr uint32_t SDMA_SIZE
Definition: amdgpu_defines.hh:67
gem5::AMDGPUVM::AGPTranslationGen::translate
void translate(Range &range) const override
Subclasses implement this function to complete TranslationGen.
Definition: amdgpu_vm.cc:285
gem5::AMDGPUVM::inSys
bool inSys(Addr vaddr)
Definition: amdgpu_vm.hh:220
gem5::AMDGPUVM::serialize
void serialize(CheckpointOut &cp) const override
Serialize an object.
Definition: amdgpu_vm.cc:184
gem5::AMDGPUVM::getSysAddrRangeLow
Addr getSysAddrRangeLow()
Definition: amdgpu_vm.hh:226
gem5::AMDGPUVM::mmhubBase
uint64_t mmhubBase
Definition: amdgpu_vm.hh:154
gem5::CheckpointOut
std::ostream CheckpointOut
Definition: serialize.hh:66
gem5::MMHUB_SIZE
static constexpr uint32_t MMHUB_SIZE
Definition: amdgpu_defines.hh:87
gem5::AMDGPUVM::AGPTranslationGen::AGPTranslationGen
AGPTranslationGen(AMDGPUVM *_vm, Addr vaddr, Addr size)
Definition: amdgpu_vm.hh:324
gem5::MipsISA::vaddr
vaddr
Definition: pra_constants.hh:278
intmath.hh
gem5::AMDGPUVM::getFBBase
Addr getFBBase()
Definition: amdgpu_vm.hh:215
gem5::AMDGPUVM::GEM5_PACKED::ptBaseL
uint32_t ptBaseL
Definition: amdgpu_vm.hh:112
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::AMDGPUVM::getMMHUBTop
Addr getMMHUBTop()
Definition: amdgpu_vm.hh:204
gem5::GRBM_BASE
static constexpr uint32_t GRBM_BASE
Definition: amdgpu_defines.hh:76
gem5::SDMA0_BASE
static constexpr uint32_t SDMA0_BASE
Definition: amdgpu_defines.hh:65
gem5::AMDGPUVM::GEM5_PACKED
Definition: amdgpu_vm.hh:105
gem5::AMDGPUVM::unserialize
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Definition: amdgpu_vm.cc:235
gem5::VegaISA::Walker
Definition: pagetable_walker.hh:54
gem5::IH_SIZE
static constexpr uint32_t IH_SIZE
Definition: amdgpu_defines.hh:72
gem5::X86ISA::addr
Bitfield< 3 > addr
Definition: types.hh:84
AMDGPU_GART_PAGE_SIZE
static constexpr int AMDGPU_GART_PAGE_SIZE
Definition: amdgpu_vm.hh:93

Generated on Sun Jul 30 2023 01:56:54 for gem5 by doxygen 1.8.17