33#ifndef __DEV_AMDGPU_AMDGPU_NBIO__
34#define __DEV_AMDGPU_AMDGPU_NBIO__
36#include <unordered_map>
56#define AMDGPU_MM_INDEX 0x00000
57#define AMDGPU_MM_INDEX_HI 0x00018
58#define AMDGPU_MM_DATA 0x00004
60#define AMDGPU_PCIE_INDEX 0x00030
61#define AMDGPU_PCIE_INDEX2 0x00038
62#define AMDGPU_PCIE_DATA 0x00034
63#define AMDGPU_PCIE_DATA2 0x0003c
65#define MI200_BIOS_SCRATCH_7 0x014c
68#define AMDGPU_MP0_SMN_C2PMSG_33 0x58184
69#define AMDGPU_MP0_SMN_C2PMSG_35 0x5818c
70#define AMDGPU_MP0_SMN_C2PMSG_64 0x58200
71#define AMDGPU_MP0_SMN_C2PMSG_69 0x58214
72#define AMDGPU_MP0_SMN_C2PMSG_70 0x58218
73#define AMDGPU_MP0_SMN_C2PMSG_71 0x5821c
74#define AMDGPU_MP0_SMN_C2PMSG_81 0x58244
75#define AMDGPU_MP1_SMN_C2PMSG_90 0x58a68
78#define VEGA10_INV_ENG17_ACK1 0x0a318
79#define VEGA10_INV_ENG17_ACK2 0x69c18
80#define VEGA10_INV_ENG17_SEM1 0x0a288
81#define VEGA10_INV_ENG17_SEM2 0x69b88
83#define MI100_INV_ENG17_ACK1 0x0a318
84#define MI100_INV_ENG17_ACK2 0x6a918
85#define MI100_INV_ENG17_ACK3 0x76918
86#define MI100_INV_ENG17_SEM1 0x0a288
87#define MI100_INV_ENG17_SEM2 0x6a888
88#define MI100_INV_ENG17_SEM3 0x76888
90#define MI200_INV_ENG17_ACK1 0x0a318
91#define MI200_INV_ENG17_ACK2 0x6b018
92#define MI200_INV_ENG17_SEM1 0x0a288
93#define MI200_INV_ENG17_SEM2 0x6af88
95#define MI300X_INV_ENG17_ACK1 0x4a298
96#define MI300X_INV_ENG17_ACK2 0x62f98
97#define MI300X_INV_ENG17_ACK3 0x8a298
98#define MI300X_INV_ENG17_ACK4 0xca298
99#define MI300X_INV_ENG17_ACK5 0x10a298
100#define MI300X_INV_ENG17_ACK6 0x14a298
101#define MI300X_INV_ENG17_ACK7 0x18a298
102#define MI300X_INV_ENG17_ACK8 0x1ca298
103#define MI300X_INV_ENG17_ACK9 0xe2f98
104#define MI300X_INV_ENG17_ACK10 0x162f98
105#define MI300X_INV_ENG17_ACK11 0x1e2f98
106#define MI300X_EPF0_STRAP0 0x34d8
110#define MI200_REG_BM_PAGE_TABLE_BASE_ADDR_START 0x6b0ac
111#define MI200_REG_BM_PAGE_TABLE_BASE_ADDR_END 0x6b128
114#define MI200_REG_BM_PAGE_TABLE_START_ADDR_START 0x6b12c
115#define MI200_REG_BM_PAGE_TABLE_START_ADDR_END 0x6b1a8
118#define MI200_REG_BM_PAGE_TABLE_END_ADDR_START 0x6b1ac
119#define MI200_REG_BM_PAGE_TABLE_END_ADDR_END 0x6b1c8
192 using GPURegMap = std::unordered_map<uint64_t, uint32_t>;
#define MI200_REG_BM_PAGE_TABLE_START_ADDR_START
#define MI200_REG_BM_PAGE_TABLE_END_ADDR_END
#define MI200_REG_BM_PAGE_TABLE_END_ADDR_START
#define MI200_REG_BM_PAGE_TABLE_START_ADDR_END
#define MI200_REG_BM_PAGE_TABLE_BASE_ADDR_START
#define MI200_REG_BM_PAGE_TABLE_BASE_ADDR_END
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
Device model for an AMD GPU.
uint16_t get_context_from_MI200_regBM_PAGE_TABLE_BASE_ADDR(Addr offset)
bool is_MI200_regBM_PAGE_TABLE_START_ADDR(Addr offset)
void readMMIO(PacketPtr pkt, Addr offset)
Addr psp_ring_listen_addr
std::unordered_map< uint32_t, uint32_t > triggered_reads
void writeMMIO(PacketPtr pkt, Addr offset)
uint16_t get_context_from_MI200_regBM_PAGE_TABLE_END_ADDR(Addr offset)
bool readFrame(PacketPtr pkt, Addr offset)
bool is_MI200_regBM_PAGE_TABLE_END_ADDR(Addr offset)
bool is_MI200_regBM_PAGE_TABLE_BASE_ADDR(Addr offset)
uint16_t get_context_from_MI200_regBM_PAGE_TABLE_START_ADDR(Addr offset)
std::unordered_map< uint64_t, uint32_t > GPURegMap
void writeFrame(PacketPtr pkt, Addr offset)
void setGPUDevice(AMDGPUDevice *gpu_device)
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Declaration of the Packet class.